Проблема с прерыванием
- Войдите на сайт для отправки комментариев
Втр, 11/04/2017 - 01:01
Всем привет!
Имеется в наличии arduino nano.
К ней присоединен дисплей и приемник. (Если это важно)
Все работает отлично, пока не включаю прерывание (interrupts()). И как только наступает время прерывания (у меня установлен мод CHANGE), начинает выполняться функция, причем выполняется она постоянно, то есть до loop() дело не доходит. Если написать внутри этой функции noInterrupts(), то она продолжит выполняться. Если написать detachInterrupt(), то эта функция перестает выполняться, но при этом же loop() тоже не работает.
В чем может быть проблема?
Уже устал пытаться что-то сделать, решил спросить у Гуру этого форума)
Заранее спасибо.
Уже устал пытаться что-то сделать, решил спросить у Гуру этого форума)
Вот и так каждый день . Приходит очередной новичек со свой проблемой, а гуру догадывается и что там за скетч такой? И если вы всетаки соизволите выложить свой скетч, то выложите его правильно.
Вот так работает loop(), но прерывания все равно не останавливаются:
А вот так loop() перестает работать, а прерывания по прежнему работают(Здесь просто убрана строчка вызова loop() в функции preriv()):
Что касается delay(), то по справке он не должен работать, но все равно работает, правда не так как надо.
Возможно понял в чем проблема: скорее всего в delay(); (но это не точно)
Вы это называте кодом? Ну, если он у Вас секретный, то разбирайтесь в нём сами :)
Проблема была в использование delay().
Убрал, теперь все работает, но как тогда задержку сделать без использования delay()?
Blink Without Delay
http://arduino.ru/tutorials/BlinkWithoutDelay
http://robocraft.ru/blog/arduino/385.html