Понимание аналоговых выводов в pinMode
При передаче вывода в pinMode можно использовать A0 - A7, применимо ли это только к этому методу? Как может pinMode ожидать тип числа (это int?) в случае цифрового вывода другого (тогда это строка?) в случае аналогового вывода? Я хочу использовать это в своем методе класса, есть ли способ использовать это и сделать мой код более читаемым или мне следует использовать номера контактов? PS Я пытался прочитать исходный код, но я не понимаю uin8_t (я знаю, что это байт, но не знаю, как он может понимать A5 как int)
Спасибо много
@Toma, 👍0
1 ответ
Лучший ответ:
pinMode на самом деле объявлен как void pinMode(uint8_t, uint8_t);
в arduino.h
A0 определяется как число (где-то в зависимости от фактического оборудования), на Uno/Nano оно преобразуется в 14, а при выполнении pinMode оно преобразуется в соответствующий бит в правильном регистре DDRx.
- NodeMCU - Vin контакт как выход 5V?
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
- Сколько датчиков может поддерживать один модуль Arduino?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Какой тип разъема использует система GROVE?
- Неиспользуемые контакты в Arduino L293D motor shield?
- Как выбрать вывод передачи в библиотеке IRremote для Arduino Uno?
На Arduino atmega328 контакт 14 (или A0) направлен на бит 0 PORTA, который можно использовать как цифровой ввод-вывод или, альтернативно, как канал АЦП., @DataFiddler
У ATmega328 нет порта 0. Контакт 14 (A0) — это PC0., @Edgar Bonet
Правильно: PORTC Бит 0 Спасибо. В DIP28 atmega328P-PU его пин 23, @DataFiddler