Инверсия кнопок
Добавлено: Вт окт 06, 2009 13:02:34
Как инвертировать значение кнопок.
Считывание реализованно с помощью этих процедур (с работой которых я толком не разобрался)
Далее идет main
buttons=read_buttons();
switch(buttons)
{
case ENT_button: goto mode_recept;
Вот кнопка ENT_button не инвертирована (работает) т.е. когда нажимаем переходим к процедуре mode_recept
Как прочитать "нажатие" на остальные две кнопки у которых вместо "0" единица
Считывание реализованно с помощью этих процедур (с работой которых я толком не разобрался)
Код: Выделить всё
unsigned char read_buttons_ones(void)
{
unsigned char temp;
temp=PIND;
temp>>=2;
temp|=0xf8;
return ~temp;
}
unsigned char read_buttons(void)
{
unsigned char buttons, count, temp;
buttons=read_buttons_ones();
if (ent_flag) {buttons|=1;ent_flag=0;}
count=128;
timer_counter1_start();
while((buttons==0)&&timeout1) buttons=read_buttons_ones();
if (!timeout1) return 0x00;
while(count--) buttons|=read_buttons_ones();
temp=read_buttons_ones();
while(temp)
{
buttons|=temp;
temp=read_buttons_ones();
}
return buttons;
}
buttons=read_buttons();
switch(buttons)
{
case ENT_button: goto mode_recept;
Вот кнопка ENT_button не инвертирована (работает) т.е. когда нажимаем переходим к процедуре mode_recept
Как прочитать "нажатие" на остальные две кнопки у которых вместо "0" единица