как найти значение по умолчанию для порта в atmega32? - PullRequest
0 голосов
/ 03 ноября 2018

Если порты микроконтроллера определены как входы, а база где-то не подключена к цепи Каков логический режим по умолчанию для этой базы (ноль или единица?) Можно ли изменить это состояние Есть? Как это можно сделать?

1 Ответ

0 голосов
/ 04 ноября 2018

По умолчанию контакты ATmega AVR находятся в состоянии, известном как high-impedance , что означает отсутствие напряжения по умолчанию. Если вы не подключаете какой-либо выход к входу с высоким импедансом, мы говорим, что вывод плавающий , и вывод может легко считывать высокий или низкий уровень; Вы не можете рассчитывать на то, что это определенное значение.

Каждый вывод имеет внутренний подтягивающий резистор, который вы можете включить. Подтягивающий резистор слабо подтягивает линию вверх, поэтому, когда его ничто не приводит в действие, его цифровое входное значение будет равно 1. Если вы включите подтягивающий резистор, линия больше не будет иметь высокое сопротивление или плавающее.

Например, чтобы установить PD2 в качестве входа и включить его подтягивание, вы можете использовать этот код C:

DDRD &= ~(1 << 2);
PORTD |= (1 << 2);
...