Самый быстрый способ считывания состояния цифрового контакта в Arduino Due
Каков самый быстрый способ прочитать статус цифрового контакта в Arduino Due? Можно ли достичь скорости в области наносекунд?
С помощью какого типа кода я могу этого добиться?
Изменить: этот вопрос не является дубликатом, смотрите мой комментарий.
@William Roy, 👍1
Обсуждение2 ответа
▲ 2
Если контакт объявлен как входной, скажем, контакт 13:
uint32_t pin_status;
pin_status = PIOB->PIO_PDSR & PIO_PDSR_P27;
Если контакт объявлен как выходной, скажем, контакт 13:
uint32_t pin_status;
pin_status = PIOB->PIO_ODSR & PIO_ODSR_P27;
,
@Jyotirmaya Mahanta
Смотрите также:
- Что означает “LSB на градус в секунду” (LSB per degree per second)?
- Построение графика на Python с использованием Tkinter Canvas
- Esp8266 Vin контакт
- Как подать аналоговый выход 0-5В
- Аналоговые и цифровые акселерометры – плюсы и минусы
- Как добраться до контакта PS_ON на RAMPS1.4, установленном на Mega
- Декодирование порта VGA с помощью Arduino
- Настройка порога для цифровых контактов
Да, записывайте или читайте из правильных регистров GPIO/PORT напрямую. В лучшем случае для чтения потребуется всего несколько циклов процессора, то есть несколько наносекунд. Время обработки после этого неизвестно и зависит от того, что вы хотите сделать со считанными данными. Дубликат http://arduinoprosto.ru/q/9117/sam3x8e-arduino-due-pin-io-registers. Также прочитайте http://forum.arduino.cc/index.php?topic=260731.0., @Maximilian Gerhardt
Возможный дубликат регистров ввода-вывода SAM3X8E (Arduino Due), @James Waldby - jwpat7
Нет, это не дубликат. Там вы найдете ответ, как установить цифровой вывод в качестве выхода, но НЕ как установить его в качестве входа и прочитать состояние его контакта. Или, по крайней мере, это не объяснено достаточно подробно. Также вы не найдете подходящего ответа на вопрос «самый быстрый», а только, к сожалению, альтернативу digitalWrite. Вы не найдете ни одного примера кода для установки вывода в качестве входных данных и чтения с него, что на самом деле было бы очень важно для новичков, таких как я, если вы не забываете, что особенно «ненормальные» команды регистра очень загадочны для новичок., @William Roy
нс? нет. нас? ага., @dandavis
Его использует библиотека OneWire: https://github.com/PaulStoffregen/OneWire/blob/master/OneWire.h, @Jot
@Jot: Где именно? Не могли бы вы опубликовать как фрагмент?, @William Roy
@WilliamRoy все определения, функции DirectRead, DirectMode и т. д. представляют собой быструю прямую запись порта. OneWire.cpp показывает, как хранится битовая маска и используются определения DIRECT...., @Jot
@WilliamRoy Пожалуйста, ознакомьтесь с библиотекой GPIO для портативной высокоскоростной библиотеки Arduino. https://github.com/mikaelpatel/Arduino-GPIO, @Mikael Patel