Инверсия кнопок

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Сообщения: 66
Зарегистрирован: Вт фев 05, 2008 00:49:13
Откуда: Тамбов

Сообщение FedorChek »

Как инвертировать значение кнопок.
Считывание реализованно с помощью этих процедур (с работой которых я толком не разобрался)

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

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;
}
Далее идет main
buttons=read_buttons();
switch(buttons)
{
case ENT_button: goto mode_recept;
Вот кнопка ENT_button не инвертирована (работает) т.е. когда нажимаем переходим к процедуре mode_recept
Как прочитать "нажатие" на остальные две кнопки у которых вместо "0" единица
Реклама
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

Сообщение Saadov »

Полный текст приведите, как реализована клавиатура? Матрицей или просто несколько кнопок к порту?
Реклама
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

Сообщение Saadov »

Как я понял это функция антидребезга кнопок, так и не понял, что вы в итоге хотели
Но приведу строки из одноименного курса

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

Логические операции:
|| // "ИЛИ" - только "ложь" и "ложь" 
   //          дают "ложь"   


&&  //  "И" - только "истина" и "истина" 
         //         дают "истина"   

!   // "НЕ" - логическое отрицание

/*   Правило - в Си считается:

"Ложь" (False) только ноль.

"Истина"(True)- не ноль. или так:  (!0)

*/

!(истина) // дает "ложь"   

!(ложь)    // дает "истина"  
Обратите внимание на последние 2 строчки
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

return buttons;

если инвертировать, то

return ~buttons;

Соссно все.
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 66
Зарегистрирован: Вт фев 05, 2008 00:49:13
Откуда: Тамбов

Сообщение FedorChek »

Вот схема подключения кнопок
Кнопка подключенная через транзистор работает с кодом приведенным выше остальные две нет как считать нажатие
Вложения
1.jpg
(126.84 КБ) 318 скачиваний
Реклама
Открыл глаза
Сообщения: 66
Зарегистрирован: Вт фев 05, 2008 00:49:13
Откуда: Тамбов

Сообщение FedorChek »

Ну что нет соображений?
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»