Понимание аналоговых выводов в pinMode

При передаче вывода в pinMode можно использовать A0 - A7, применимо ли это только к этому методу? Как может pinMode ожидать тип числа (это int?) в случае цифрового вывода другого (тогда это строка?) в случае аналогового вывода? Я хочу использовать это в своем методе класса, есть ли способ использовать это и сделать мой код более читаемым или мне следует использовать номера контактов? PS Я пытался прочитать исходный код, но я не понимаю uin8_t (я знаю, что это байт, но не знаю, как он может понимать A5 как int)

Спасибо много

, 👍0


1 ответ


Лучший ответ:

1

pinMode на самом деле объявлен как void pinMode(uint8_t, uint8_t); в arduino.h

A0 определяется как число (где-то в зависимости от фактического оборудования), на Uno/Nano оно преобразуется в 14, а при выполнении pinMode оно преобразуется в соответствующий бит в правильном регистре DDRx.

,

На Arduino atmega328 контакт 14 (или A0) направлен на бит 0 PORTA, который можно использовать как цифровой ввод-вывод или, альтернативно, как канал АЦП., @DataFiddler

У ATmega328 нет порта 0. Контакт 14 (A0) — это PC0., @Edgar Bonet

Правильно: PORTC Бит 0 Спасибо. В DIP28 atmega328P-PU его пин 23, @DataFiddler