Функция при бездействии пользователя через определённый промежуток
- Войдите на сайт для отправки комментариев
Ср, 06/07/2022 - 18:51
Хочу сделать такую вещь - при вращении энкодера нечего не будет происходить. Но если эконодер оставить в покое и пройдёт период, то запустится функция. Смотрел, изучал, но не понял как это реализовать.
Библиотека энкодера: GyverEncoder
Однако, программу писать нада.
Делается таймер, да хоть на миллис, при срабатывании которого запускается нужная тебе функция, таймер при этом останавливается. Каждый тик энкодера перезапускает этот таймер. Таким образом, пока крутишь энкодер, "нечего не будет происходить. Но если эконодер оставить в покое и пройдёт период, то запустится функция"
Смотри, изучай, делай ))
Смотри, изучай, делай ))
Подожди, счас он ношкой топнет...
Смотри, изучай, делай ))
Подожди, счас он ношкой топнет...
Ждемс )))
Пытался что-то подобное сделать, сейчас в новом скетче тестану
Пытался что-то подобное сделать, сейчас в новом скетче тестану
Что-то не заработало, прилагаю код для профф. юзеров. Запускаются две функции сразу.
а почему таймер включается только при двойном клике? В первом сообщении вы писали не так
В третьей строке косяк -
gmode = !gmode;
lock
=
true
;
должны быть убраны в фигурные скобки, иначеlock
=
true
;
будет выполняться всегдаа почему таймер включается только при двойном клике? В первом сообщении вы писали не так
Двойной клик запускает у меня менюшку с кейсами. Обрабатывается она отдельной функцией modes();
А основная менюшка gain(); всегда запущена для использования.
Начало работать, но функция modes(); теперь запускается на один тик и всё.
В 12 строке скобки у миллиса потерял
Пришлось добавить сброс таймера еще в enc.isDouble(), и всё заработало.
Пришлось добавить сброс таймера еще в enc.isDouble(), и всё заработало.
Ну да. По хорошему вход в меню как раз и запускает таймер. А для этого поменять флаг мало, нужно еще время зафиксировать