roboforum.ruТехнический форум по робототехнике. |
|
|
Перем СтатусКнопки=0;
КнопкаНажатаСейчас=ПолучитьИзПорта();
ТолькоЧтоНажали=0;
Если СтатусКнопки=0 Тогда ТолькоЧтоНажали=КнопкаНажатаСейчас
СтатусКнопки=КнопкаНажатаСейчас
Можно его увидеть ?milkpower писал(а): что-то мой алгоритм не работает.
avr123.nm.ru писал(а):Можно его увидеть ?
key_prs:
;обработчик кнопок (return возвращаемый результат, либо 0 если кнопка еще нажата либо, ничего не нажато)
;butpres старое значение нажатых кнопок
clr return
in temp,Pind
mov temp1,temp
and temp1,butpres
breq key_ret
mov butpres,temp
mov return,temp
ret
key_ret:
mov butpres,temp
ret
int С=0; // воображаемый кондер с зарядом 0-100%
short ButNoise=0; // это кнопка после шумодава
short Pressed=0; // кнопка была нажата в прдидущем скане
while(1)
{
if(buton&&(C<100)) C++; else if(C>0) C--;
if(C>90) ButNoise=1;
if(C<10) ButNoise=0;
if(ButNoise&&!Pressed) тут делаем чтото по начатию конпки
if(!ButNoise&&Pressed) тут делаем чтото по отпусканию конпки
Pressed = ButNoise;
}
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23