- Автоповтор клавиатуры
-
? litwr2@ - 16.12.2014 10:31
Господа, помогите разобраться с автоповтором на клавиатуре. Как это делают? Пробовал эксперементировать с RESET, но не получается. RESET выключает прерывания и не включает их даже после CLR @#177660 :-( Поискал в материалах форума и нашёл только фразу Юрия (от 2003): "для самой БК автоповтор это не проблемма.. Просто стандартный ПЗУшный обработчик клавиатуры так работает...Без автоповтора."
-
? litwr2@ - 16.12.2014 10:39
Пробовал спросить об этом же на http://zx-pk.ru/, но там требуют регистрации, а регистрация закрыта. :-( Что за ерунда?!
-
? Дмитрий - 16.12.2014 11:04
Организуется цикл проверки нажатия клавиши. Если нажата - проверяем, отпущена ли клавиша. Если все еще нажата - берем последний код. Не нажата - читаем из 177662. Упрощенно как-то так.
-
? Дмитрий - 16.12.2014 11:06
А вообще есть два варианта. Автоповтор пока нажата клавиша и автоповтор до нажатия другой клавиши (емнип, реализовано в KLAD).
-
? litwr2@ - 16.12.2014 12:13
Разобрался, почему пропали прерывания - нужно было ещё после RESET MTPS #0 выполнить.
Дмитрий, очень вам благодарен - RESET не нужен - нужно проверять бит 6 порта 177716 и делать задержку. Получается, что БК-клавиатура лишена многих недостатков, которые её обычно приписывают.
Кстати нашёл на http://bk001x.ru/forum/186-216-1 вот такой код автоповтора
0: RESET
EMT 4
EMT 6
EMT 16
BR 0
- не работает и похоже на шутку.
-
? Дмитрий - 16.12.2014 13:05
Если мне склероз не изменяет, таким образом можно распознавать две одновременно нажатые клавиши, но автоповтором тут не пахнет.
-
? CD-Inc@ - 17.12.2014 23:03
Вот болванка:
http://bk001x.ru/forum/320-406-1
-
? litwr2@ - 17.12.2014 23:16
CD-Inc, благодарности. Так уже и делал только без звукового сопровождения, без блокировки СТОП, с меньшей задержкой и через прерывания для детекции АР2. Сложнее сделать через таймер, чтобы процессор не простаивал на цикле.
- << Форум