-
- Нет, флаги нажатых кнопок генерируются обработчиком клавиатуры в прерывании независимо. Затем Vladimir Ljaschko(596 знак., 17.09.2011 12:35)
- Блин, опять что-то не так делаю? Я сделал так: практически все вынес в в основной цикл. Соответственно, обработку программных таймеров, опрос кнопок. Тип клавиш\порты задаются дефайнами. Нажатие любой-ых клавиш-и, выставляется флаг (этот флаг mazur(344 знак., 17.09.2011 13:18)
- Спокойнее ;) Vladimir Ljaschko(397 знак., 17.09.2011 15:43)
- Подвешивать основной цикл на секунду - это неправильно. Такие длительные операции нужно разбивать на кванты. Нормальный период основного цикла - единицы..десятки мс. Время подавления дребезга обычно больше. Лeoнид Ивaнoвич(258 знак., 18.09.2011 12:05)
- Все верно, но я предпочитаю иметь возможность "грязного хака", чем не иметь. - Vladimir Ljaschko(18.09.2011 16:08)
- Странно, мы разве абсолютно по разному смотрим на подавление дребезга? И при чем здесь длина основного цикла? Хотя, может я чего и не знаю. По подавлению дребезга - Есть нажатие, выставили таймер, изменили состояние обработчика кнопок. При mazur(202 знак., 17.09.2011 18:55)
- Если основной цикл длинный, то можно пропустить следующее нажатие, посчитав его за длиииительный дребезг. Пользователь такому никак не обрадуется. Подавление дребезга не самоцель, а способ более точной идентификации нажатий клавиш пользователем. rezident(68 знак., 17.09.2011 19:19)
- Понял. - mazur(17.09.2011 19:22)
- и без всяких там буферов: реакция должна быть незаметной для пользователя (менее сотни мсек), а если это в какой-то момент невозможно - пользователь должен об этом однозначно знать koyodza(212 знак., 17.09.2011 19:31)
- +1. Усилия нужно тратить не на создание буфера, а на исключение тормозов при обработке нажатий. - Лeoнид Ивaнoвич(18.09.2011 12:06)
- У профессионалов есть функция для насильной чистки буфера в таких ситуациях. - fk0(17.09.2011 21:40)
- только они ею не пользуются :=P :=D - koyodza(18.09.2011 10:57)
- и без всяких там буферов: реакция должна быть незаметной для пользователя (менее сотни мсек), а если это в какой-то момент невозможно - пользователь должен об этом однозначно знать koyodza(212 знак., 17.09.2011 19:31)
- Понял. - mazur(17.09.2011 19:22)
- Если основной цикл длинный, то можно пропустить следующее нажатие, посчитав его за длиииительный дребезг. Пользователь такому никак не обрадуется. Подавление дребезга не самоцель, а способ более точной идентификации нажатий клавиш пользователем. rezident(68 знак., 17.09.2011 19:19)
- Подвешивать основной цикл на секунду - это неправильно. Такие длительные операции нужно разбивать на кванты. Нормальный период основного цикла - единицы..десятки мс. Время подавления дребезга обычно больше. Лeoнид Ивaнoвич(258 знак., 18.09.2011 12:05)
- Сто-о-оп! Если сообщение то же, то оно не записывается.... Нужно проверить... - mazur(17.09.2011 13:20)
- Спокойнее ;) Vladimir Ljaschko(397 знак., 17.09.2011 15:43)
- Блин, опять что-то не так делаю? Я сделал так: практически все вынес в в основной цикл. Соответственно, обработку программных таймеров, опрос кнопок. Тип клавиш\порты задаются дефайнами. Нажатие любой-ых клавиш-и, выставляется флаг (этот флаг mazur(344 знак., 17.09.2011 13:18)
- Нет, флаги нажатых кнопок генерируются обработчиком клавиатуры в прерывании независимо. Затем Vladimir Ljaschko(596 знак., 17.09.2011 12:35)