Периодичность опроса клавиатуры
- Войдите на сайт для отправки комментариев
Пт, 05/01/2018 - 05:22
А с какой периодичностью имеет смысл опрашивать клавиатуру? 250мс, 500мс? Обычный кейпад 3*4, библиотека тоже стандартная, v3.1.
Я делаю в любой доступный момент, но не чаще чем 1 отработка кнопки в нное время. Например
if(millis()-last_key>=500){ if(!digitalRead(KEY_A)) doAction(1); if(!digitalRead(KEY_B)) doAction(2); ... if(!digitalRead(KEY_N)) doAction(x); last_key=millis(); }У меня в LOOP'е раз в 500мс дергается экран, кейпад каждые 200мс, остальное пока отдано на откуп самому процессу. Попробовал зажать кейпад до 450мс, неадекватно получается. Отклик невнятный, да и вообще, звуком дублировать ввод приходится. В родную библиотеку лезть не хочу. Попробовал написать врукопашную, ну есть 800 байт экономии программной памяти и 100 данных, но нет отсечки удержания. Если её писать, то сожру весь выигрыш. По этому родную и оставил.
Из кода показать, извините, пока нечего, один скелет с заглушками. Сейчас клавиатурный ввод отрабатываю.
А с какой периодичностью имеет смысл опрашивать клавиатуру? 250мс, 500мс? Обычный кейпад 3*4, библиотека тоже стандартная, v3.1.
С какой Вам надо, с такой и опрашивайте.
Например, TM1668 опрашивает каждые 8мс. Такие интервалы (6-15мс) хороши тем, что позволяют заодно и дребезг худо-бедно отсечь.
Самое сложное в клавиатуре, это определить как правильно ее организовать. Примитивно это каждая кнопка отдельно. Ну а самый высший уровень это организовать поток ввода , подобный Serial. Но тут с Serial не все умеют работать (ввод с Serial, а не отправка на печать). Я не вижу, по какому принципу строите программу. Но так же надо строить и клавиатуру.
с Serial не все умеют работать (ввод с Serial, а не отправка на печать).
А что с отрпакой на печать все умеют? :)))) Вроде Вы читаете наших уважаемых ньюби - должны бы знать :))