Страница 1 из 1
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 09 ноя 2019, 17:21
DrGebb
Сразу к делу. Штатный скоростной счетчик не работает корректно с есп. Есп после прошивки - постоянно уходит в ребут. Нужно всего лишь добавить
ICACHE_RAM_ATTR перед декларированием функции, которая будет вызываться в прерывании. Что это и зачем это надо можно прочить
<здесь>
[spoiler]

[/spoiler]
После этих манипуляций - все работает как надо.
Есть еще баг, который касается непосредственно flprog. При установке галки в чекбоксе "аппаратный таймер" [spoiler]

[/spoiler]. При компиляции создается функция setupSpeedCounterTimer(); --- она объявляется, вызывается и используется, все хорошо.
НО когда мы
НЕ ставим галку в чекбоксе "аппаратный таймер" -- то эта функция setupSpeedCounterTimer(); -- просто вызывается, будучи не задекларированной - компилятор сообщает об ошибке. Я так понял, что без "аппаратного таймера" - это функция вообще не нужна, и присутствие ее в коде - это ошибка.
Надеюсь автор программы увидит это сообщение и исправить эти ошибки.
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 09 ноя 2019, 17:47
edyapd
[ref]DrGebb[/ref], у вас даже не написано к какой версии программы это относится.
Если это последняя версия 6.1.1, то вам
СЮДА
И ещё, про прерывания, зависит от версии ESP установленной в Arduino IDE. Например с 2.4 всё нормально, проблемы начались с 2.5
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 09 ноя 2019, 18:03
DrGebb
[ref]edyapd[/ref], да версия flprog 6.1.1, да 5.3 тоже самое. А версия есп в Arduino IDE 2.5.2
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 11 мар 2020, 21:04
Max
У кого работает на ESP8226 скоростной счетчик?
У меня вообще не компилируется.
(pr22:76: error: 'setupSpeedCounterTimer' was not declared in this scope
setupSpeedCounterTimer();)
Как решается эта проблема? И, вообще, есть ли решение?
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 11 мар 2020, 22:28
DrGebb
DrGebb писал(а): 09 ноя 2019, 17:21
При компиляции создается функция setupSpeedCounterTimer(); --- она объявляется, вызывается и используется, все хорошо.
НО когда мы НЕ ставим галку в чекбоксе "аппаратный таймер" -- то эта функция setupSpeedCounterTimer(); -- просто вызывается, будучи не задекларированной - компилятор сообщает об ошибке. Я так понял, что без "аппаратного таймера" - это функция вообще не нужна, и присутствие ее в коде - это ошибка.
Надеюсь автор программы увидит это сообщение и исправить эти ошибки.
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 27 мар 2023, 11:00
lentyaj1982
я нашел причину постоянного ребута МК при использовании скоростного счётчика. Проверьте у себя.
Ведь надо разделить 60 000 000 на длину паузы, чтоб точно определить обороты, мы обычно используем Unsigned long integer, что логично, вводя 60 000 000, а можно просто Float и всё работает. Два скоростных счётчика уже 12 часов пашут и по графику сбоев нет, это ещё с тяжёлым веб интерфейсом с сек обновлением. Всё чётко.
Проблема с прерыванием и скоростным счетчиком на esp и решение
Добавлено: 27 мар 2023, 16:17
ecoins
Очень интересный результат.
Поучительный пример для аккуратного использования типов переменных.
С Уважением, Энвер.