Залипают кнопки модификаторы (Keyboard.h)
- Войдите на сайт для отправки комментариев
Втр, 29/03/2016 - 09:08
Необходимо получать комбинацую клавишь напрмер Alt+F3. На мостоанно залипает кнопка модификатор Alt, Shift, Ctrl. причем никакой закономерности не выявлено, только лишь : чем болше задежка поосле нажатию комбинации тем больше вероятность залипания. Пытался по разному писать но результат тотже.
1)
Keyboard.press(KEY_LEFT_ALT) , Keyboard.press(KEY_F3), delay(10), Keyboard.releaseAll(), delay(240);
2)
Keyboard.press(KEY_LEFT_ALT) ; Keyboard.press(KEY_F3), delay(10); Keyboard.releaseAll(), delay(240);
3)
Keyboard.press(KEY_LEFT_ALT) , Keyboard.write(KEY_F3), delay(10), Keyboard.releaseAll();
иногда не срабатывает Alt
4)
Keyboard.press(KEY_LEFT_ALT) , delay(10), Keyboard.press(KEY_F3), delay(10), Keyboard.releaseAll(), delay(240);
5)
Keyboard.press(KEY_LEFT_ALT) , delay(10), Keyboard.press(KEY_F3), delay(10), Keyboard.release(KEY_LEFT_ALT), Keyboard.release(KEY_F3),delay(240);
Подскажите как надо писать ?
Может проблема в delay? Замените на millis. Пример в "наборе новичка" blinkWithoutDelay.
Суть в запоминнаии текущего времени выполнения и сравнения с текущим. Попробуйте.
Изменено:
Но наверное это не то. Сделайте контрольную функцию в Keyboard.releaseAll(); она возращает количество отключенных кнопок. Например сделать так.
control_var = Keyboard.releaseAll();
Serial.println(control_var);
Так будет видно количество отжатых кнопок. Их в вашем случае должно быть два. У вас два?
А если их по отдельности отжать а не все. Так чисто попробовать.
Без Delay тоже тупит но меньше поэтому ветьв millis считаю тупиковой.
Скачал програму отображения нажатых кнопок Keyboard Test Utility там видно что кнопки нажимаются и отпускаются, но по факту alt остается нажатым.
по отдельности они вроде нормально нажимаются и отпускаются.
Не добился стабилность и просто пустил кнопки F* в расход.