1 (edited by flatx007 2023-10-01 16:17:45)

Topic: Перезапускается интерфейс если быстро нажимать на кнопки

Имеется БОЛЬШОЙ проект для Mega, суть в том что если быстро нажимать на кнопки быстро и медленно тоже ! раз на раз не приходится, перезапускается интерфейс (мигает disconnect).

Все вызовы и инициализации функций RemoteXY на своих местах.

Можете посмотреть код? Что может быть не так ...

+++

Разобрался немного , сбой происходит только через блютус на стандартной скорости 9600.

Если подключить через USB на скорости 38400 все происходит без сбоев, в целом дисконект можно получить нажимая кнопки очень быстро и не дожидаясь пока завершится работа функции которая привязана к этой кнопке.

2

Re: Перезапускается интерфейс если быстро нажимать на кнопки

Для того что бы понять ситуацию пробуйте искать проблему методом исключения.
1. Проверьте исходный код только из редактора RemoteXY. Без вашего дополнительного кода совсем. Происходит ли обрыв связи если нажимать те же кнопки. Если тут все ОК то дальше ищем проблему в дополнительном коде.
2. Удалите код который реагирует на нажатия кнопок и попробуйте без него. Если все опять ОК то проблема в этом куске кода.
Основное что могу предположить это то что у вас код который обрабатывает кнопки может выполняться слишком долго, несколько десятков миллисекунд. За это время входные буферы RemoteXY переполняются и связь разрывается. Проанализируйте ваш код кнопок на время выполнения.
Замените delay() на RemoteXY_delay() везде в коде если где то присутствует.

3

Re: Перезапускается интерфейс если быстро нажимать на кнопки

Нашел одну проблему с моей функцией сохранения настроек в EEPROM, заменил кнопку "без фиксации" на переключатель. С кнопкой возможно функция работала бесконтрольно тк пальцем не  получается нажать всегда одинаково. (Защита от многократнной перезаписи есть).

Так же в функции записи в EEPROM поставил задержки RemoteXY_delay(500) в начале и конце функции , к слову delay () не пользуюсь вообще.