Ви не увійшли.
Приветствую и с наступающим новым годом,
с прерыванием никогда ничего не делал и не эксперементировал, сейчас делаю автозауск с Nodemcu и здесь понадобился.
почитал как делается на ардуино в общем понятно, но остались вопросы.
на ардуино уно, ставится номер прерывания например 0 это пин 2.
Вопрос, а на Nodemcu тоже номер или я должен указывать пин как на arduino due
примерно так?
attachInterrupt(4, function, CHANGE)
дальше второй вопрос,
скажем программа находится например на строке 236 и тут срабатывает прерывание. Прерывание обработало функцию brakePedal().
А дальше продолжит с 237 ?
может есть у кого простенький пример с использованием NodeMcu, прерывания и изменения переменых внутри функции прерывания.
Неактивний
спасибо за ответ, но возник еще один, правда косвенно относящийся к прерыванию
все работает следущем образом, приходит сигнал - выполняется функция "запустить мотор" она долгая прогрев спиралей определение завелся ли мотор, передача данных на сервер и т. д.
мне нужно все отменить если вдруг нажата педаль тормоза или рычаг больше не на нетральной скорости.
я использую прерывание, но проблема в том что функция прерывания все отключит как и нужно, но по заключению вернется туда где была вызвана, Т. е. другими словами, в процессе запуска мотора, микроконтролер ждет прогрева спиралей и тут я нажимаю педаль тормоза- должно все отмениться, прерывание все отключит, но вернется к включению стартера в функции запуска мотора.
хотелось бы просто выйти из всех фукций оптимально было бы использовать goto но оно вроде работает только внутри функции. не хочется в функции запуска мотора, после каждой строчки писать условия проверки.
Неактивний
Функция обработки прерывания не должна быть большой и отключать ней что-то тоже не желательно. Достаточно чтобы обработчик прерывания просто устанавливал флаг, например, brakePedalFlag = 1. А в самой функции запуска мотора вставляете в нужные места, а не после каждой строчки проверку флага brakePedalFlag и корректно глушите мотор.
Неактивний
Может подскажите или подскажите где найти информацию. Есть скетч для Arduino:
ISR (TIMER0_COMPA_vect) //функция, вызываемая таймером-счетчиком каждые 0,001 сек
{
if(timerOn == 1) //если таймер включен
{
timer++; //увеличение значения таймера на +1 каждые 0,001 сек
}
if(alarmTimerOn == 1)
{
alarmTimer++;
}
if(tempTimerOn == 1)
{
tempTimer++;
}
}
Как реализовать аналогичное на NodeMCU ?
... Как реализовать аналогичное на NodeMCU ?
Не так просто как для АVR. Вам придется вникнуть в архитектуру аппаратуры и фирмварэ ESP8266, и отыскать решение самому. Воспользуйтесь, как примером, модуем системного таймера: ~/.arduino15/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266/core_esp8266_timer.c
Неактивний