Программа управления кнопками

Обсуждаем контроллеры компании Atmel.
Ответить
romasimeiz
Родился
Сообщения: 5
Зарегистрирован: Вс дек 15, 2013 18:59:46

Программа управления кнопками

Сообщение romasimeiz »

Добрый день! Прошу помочь. Мне нужно сделать алгоритмы программы, непонятны некоторые куски. Прошу помочь разобрать. Вопросы в комментариям. Буду очень благодарен за помощь :)

1.

Код: Выделить всё

char red_kb[3]={0, 0, 0};  //массив для ф-ции char red_kb[3]={0, 0, 0}; зачем он нужен? и зачем мы нулям присваиваем инверсное значение кнопок?

void init_red_kb(void)
{
DDRB=0xFF;

PORTB=0xFF;
}
                    
      
void read_red_kb(void)
{
red_kb[0]=~RED_BTN_0;
red_kb[1]=~RED_BTN_1;
red_kb[2]=~RED_BTN_2;
                                        
}
      
      
void main(void)
{
int j=0;
init_red_kb();

PORTD=0xFF;
DDRD=0xFF;

while (1)
{
read_red_kb();
if (red_kb[1]){j=0;} // 
if (red_kb[0]){j+=1;}
if (red_kb[2]){j-=1;}
       PORTD=~j;
       delay_ms(500);
 }
}


2.

Код: Выделить всё

const char select_col[3]={0xEF, 0xDF, 0xBF};
char BUTTON_E[12]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
void trans_delay(void){#asm("NOP")};
void main(void)
{       //
        unsigned char key_buffer, i;
        //
        PORTB=0xFF;
        DDRB=0x00;
        //
        PORTD=0xFF;
        DDRD=0xFF;
        //
        PORTE=0xFF;
        DDRE=0xF0;
while (1)
      {
      for(i=0; i<3; ++i){
        PORTE=select_col[i];
        trans_delay();   //  зачем делается здесь NOP? это ожидание пока не нажмётся какая нибудь кнопка? 
        
        BUTTON_E[i]=~PINE.3;      // что происходит здесь? получается мы кнопкам присваиваем значение кнопок? для чего прибавление +3 каждый раз? 
        BUTTON_E[i+3]=~PINE.2;
        BUTTON_E[i+6]=~PINE.1;
        BUTTON_E[i+9]=~PINE.0;
      }

      }
} 
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Программа управления кнопками

Сообщение pyzhman »

Может всё-таки сделать свой алгоритм, а не копошиться в чьём-то?
Docendo discimus
Реклама
Dimon11
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Вс дек 15, 2013 00:07:02

Re: Программа управления кнопками

Сообщение Dimon11 »

Что подразумевается под инверсными значениями кнопок?
Ответить

Вернуться в «AVR»