ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
95209 Топик полностью
ReAl (25.07.2007 17:58, просмотров: 1) ответил rezident на Не нужно ждать отпускания, нужно просто XORить два соседних скана. Типа такого
Аналогично поступаю. С мелким отличием в записи (явно выделяю сущность) Опираясь на приведенный код: <c> if ((scanNew^scanOld)==0) //состояния совпадают, значит дребезга нет и можно обрабатывать { changed_mask = scanNew^stateKbd; if (changed_mask!=0) //есть изменения в состоянии кнопок? { //ага, есть. проверяем что за изменения //проверяем конкретную кнопку, либо в цикле все кнопки. как вам захочется if ((changed_mask & MASK_KEY1)!=0) //кнопка KEY1 изменила свое состояние на нажатое? { //обрабатываем, формируем код для KEY1 } } stateKbd=scanNew; } scanOld=scanNew; </c> С changed_mask можно делать scanNew & changed_mask для тех, которые стали нажатыми (если "1" == нажата), !scanNew & changed_mask для отпущенных и т.д.