Esp32 C++ отключить и перезапустить аппаратный таймерC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Esp32 C++ отключить и перезапустить аппаратный таймер

Сообщение Anonymous »

Для esp32 с использованием Visual Studio Code мое требование: при выполнении условий включить светодиод на две секунды. Выполните сброс, затем дождитесь повторного выполнения условий (затем включите светодиод на две секунды).
Мне удалось запустить и отключить таймер при первом выполнении условия. . В любой последующий раз - это не работает.
Есть ли другой способ сделать это? Как мне заставить это работать?

Код: Выделить всё

  soundTimer=timerBegin(0,80,true);
timerAttachInterrupt(soundTimer, &onTimer, true);
timerAlarmWrite(soundTimer, 4000000, true);
внутри ISR (чтобы отключить повторение таймера):

Код: Выделить всё

    timerEnd(soundTimer);
для запуска таймера:

Код: Выделить всё

timerAlarmEnable(soundTimer);
Я получаю следующие ошибки (через последовательный монитор):

Код: Выделить всё

40 E (75911) timer_group: timer_set_alarm(179): HW TIMER NEVER INIT ERROR
которому я не смог найти решение.
Если аппаратный таймер не лучший подход - что что мне нужно сделать, чтобы надежно выключить светодиод через две секунды?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ware-timer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»