АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 15.09.13 10:50. Заголовок: Обработчик кнопки


Есть МК на одной ноге у нее кнопка без фиксации. Нужно в программе отслеживать ее нажатия по такому алгоритму:
нажатие (и ее удержание в нажатом состоянии) менее 200 мс игнорировать.
нажатие до ~1300 - короткое нажатие
нажали и удержали на 1300 и более удержание кнопки (долгое нажатие).

Как-то вот так я это сделал:

 цитата:
......
Label WaitReleaseButton;

procedure Proc;
var N: Byte;
begin
for N:= 1 to 3 do begin
Func;
Delay_ms(3000);
end;
end;
//--------------------- Main -------------------------
var N: Word;
begin

while True do begin
.........
if Button(PORTA, 0, 200, 0) then begin
.......... //Тут код при кратковременном нажатии
for N:= 1 to 1500 do begin
if not Button(PORTA, 0, 1, 0) then Break;
end;

if Button(PORTA, 0, 1, 0) then begin
Proc; // Это вызывается при удержании кнопки на ~1,5 сек
goto WaitReleaseButton;
end;
..........
WaitReleaseButton: //приостановить программу пока не отпустили кнопку
while not PORTA.B0 do nop;
end;
end;
end.



При долгом удержании вызывается подпрограмма Proc; которая может и должна выполнятся долгое время
ВОПРОС: Как мне это переделать или доделать или предложите свои вариант
А нужно чтобы во время выполнения Proc обработка кнопки на короткое нажатие осталась.
Т.е. если выполняется Proc а мы во время ее выполнения нажимаем кнопку и удерживаем более 200 мс и тогда нужно
сразу прервать код Proc; и вернуться в главный цикл программы.

Спасибо: 0 
Цитата Ответить
Ответов - 1 [только новые]





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 28.09.13 09:13. Заголовок: Для начала забыть па..


Для начала забыть паскаль как страшный сон .
А там глядишь и озарение снизойдет.


Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 14
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия