Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 09 ноя 2019, 17:21
Сразу к делу. Штатный скоростной счетчик не работает корректно с есп. Есп после прошивки - постоянно уходит в ребут. Нужно всего лишь добавить ICACHE_RAM_ATTR перед декларированием функции, которая будет вызываться в прерывании. Что это и зачем это надо можно прочить <здесь>
[spoiler]
[/spoiler]
После этих манипуляций - все работает как надо.
Есть еще баг, который касается непосредственно flprog. При установке галки в чекбоксе "аппаратный таймер" [spoiler]
[/spoiler]. При компиляции создается функция setupSpeedCounterTimer(); --- она объявляется, вызывается и используется, все хорошо.
НО когда мы НЕ ставим галку в чекбоксе "аппаратный таймер" -- то эта функция setupSpeedCounterTimer(); -- просто вызывается, будучи не задекларированной - компилятор сообщает об ошибке. Я так понял, что без "аппаратного таймера" - это функция вообще не нужна, и присутствие ее в коде - это ошибка.
Надеюсь автор программы увидит это сообщение и исправить эти ошибки.
[spoiler]
[/spoiler]После этих манипуляций - все работает как надо.
Есть еще баг, который касается непосредственно flprog. При установке галки в чекбоксе "аппаратный таймер" [spoiler]
[/spoiler]. При компиляции создается функция setupSpeedCounterTimer(); --- она объявляется, вызывается и используется, все хорошо. НО когда мы НЕ ставим галку в чекбоксе "аппаратный таймер" -- то эта функция setupSpeedCounterTimer(); -- просто вызывается, будучи не задекларированной - компилятор сообщает об ошибке. Я так понял, что без "аппаратного таймера" - это функция вообще не нужна, и присутствие ее в коде - это ошибка.

Надеюсь автор программы увидит это сообщение и исправить эти ошибки.