не работают внешние прерывания на UNO
- Войдите на сайт для отправки комментариев
Вс, 13/04/2014 - 13:42
решил наконец то попробовать прерывания, но толи лыжи не едут толи одно из двух :)
короче вот код
int pPin = 2; void setup(){ Serial.begin(9600); pinMode(pPin, INPUT); attachInterrupt(pPin, screenon, CHANGE ); } void loop(){ Serial.println(digitalRead(pPin)); } void screenon(){ Serial.println("Interrupt-------"); while(1){ } }
screenon никогда не срабатывает
схемы никакй нет. просто беру и подключаю 2 к нулю или 5v
attachInterrupt(0, blink, CHANGE);
Цифра "0" - это номер прерываня. Не имеет никакой связи с номером пина.
Прерываня бывают "0" и "1" -это адрес прерывания. ( в Унах) Там нет третьего (2), а вы его вызываете.
Нулевое прерывание приходит от пина 2, первое от пина 3
Ну и про дребезг, понятно подумайте.
И скорость-бы подняли до 115200 чтобы вывод в сериал успевал за вашими прерываниями.
Пин компатибле:
attachInterrupt((pPin-2), screenon, CHANGE );
pPin-2 - !!!!! блин, не догадался.
функцию назову в вашу честь :)
а про подтягивающие резистры я вкурсе, это я для примера описал. так то у меня там pir - датчик будет
Про сериал, ок. попробую
pPin-2 - !!!!! блин, не догадался.
функцию назову в вашу честь :)
а про подтягивающие резистры я вкурсе, это я для примера описал. так то у меня там pir - датчик будет
Про сериал, ок. попробую