не работают внешние прерывания на 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 );
void setup(){ Serial.begin(115200); attachInterrupt(0, screenon, CHANGE ); } void loop(){ } void screenon(){ static volatile unsigned int i=0; Serial.println(i); }pPin-2 - !!!!! блин, не догадался.
функцию назову в вашу честь :)
а про подтягивающие резистры я вкурсе, это я для примера описал. так то у меня там pir - датчик будет
Про сериал, ок. попробую
pPin-2 - !!!!! блин, не догадался.
функцию назову в вашу честь :)
а про подтягивающие резистры я вкурсе, это я для примера описал. так то у меня там pir - датчик будет
Про сериал, ок. попробую