Установить прерывания, которые не являются GPIO или таймером в ESP32

Я делаю проект на ESP32. Он считывает определенные значения датчиков, сохраняет их в памяти RTC и отправляет по MQTT через определенное время. Я хочу, чтобы он передавал данные немедленно, если есть разница, скажем, в 10 единиц, через прерывание. Я полагаю, что это невозможно с помощью прерываний GPIO и, очевидно, не с помощью таймера, так как я хочу, чтобы это происходило только в том случае, если условие истинно, а не периодически. Я поискал в Интернете, но не нашел ничего, кроме GPIO и таймерных прерываний.

Я работаю над Arduino IDE.

Возможно ли то, чего я хочу, и если да, то как? Пожалуйста, также приведите определенный пример на языке Arduino, который я должен изучить. Кроме того, если это возможно с помощью прерываний GPIO, пожалуйста, скажите мне, как это сделать.

Заранее благодарю вас

, 👍0

Обсуждение

отправьте его в цикле(), @Juraj


1 ответ


Лучший ответ:

0

Нет такой вещи, как "прерывание при изменении значения", поскольку это то, что существует только в программном обеспечении, а прерывания-это вещи, запускаемые аппаратным обеспечением.

Все, что вы можете сделать, это проверить значение в цикле() и отправить данные, если оно выше вашего порогового значения. Если вы хотите пробудиться ото сна, то вам придется делать это периодически другими способами.

,

можно ли использовать сопроцессор 32 с низким энергопотреблением и процедуру сборки, чтобы избежать пробуждения, просто чтобы вычислить разницу?, @dandavis