Ах вот оно что! Ну наконец-то дошло!
1. Если нога PA0 - выход то:
- в соответствующем регистре DDR (для этой ноги DDRA.0) стоит 1 (это и означает что нога выход);
- для изменения 1/0 на ноге надо писать: PORTA.0=1; или PORTA.0=1 (т.е. в регистр PORTA.№ для ноги PA№ регистр PORTB.№ для ноги PB№ итд, но при соблюдении условия выше);
2. Если нога PA0 - вход то:
- в соответствующем регистре DDR (для этой ноги DDRA.0) стоит 0 (это и означает что нога вход);
далее есть два варианта:
- если в соответствующем DDR, бите PORT стоит 0 то вход будет
без подтяжки, чтобы получить на нем "1" нужно подать на него высокий логический сигнал (ну Vсс или +5V или около того);
- если в соответствующем DDR, бите PORT стоит 1 то вход будет
c подтяжкой, чтобы получить на нем "1" нужно его просто заземлить.
Примерно как в файле (PA4 - с подтяжкой, PA7 - без подтяжки)
Все правильно?
При этом программа будет выглядеть так примерно:
- Код: Выделить всё • Развернуть
if (PINA.4==0)
{
PORTA.0=0;
}
else
{
PORTA.0=1;
};
if (PINA.7==0)
{
PORTA.1=0;
}
else
{
PORTA.1=1;
}