PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt klappt nicht



Unregistriert
04.03.2016, 17:30
Hallo, es ist ein simples Programm, abber ich finde den Fehler nicht.
Am Eingang 2 eines Uno liegt (auf einem Ozilloskop sichtbar) ein Rechtecksignal mit der Periodendauer 100 ms.

Ich möchte nur, dass der Ausgang 13 gesetzt wird und im seriellen Monitor eine 1 erscheint , wenn der Eingang 2 einen Signalwechsel von 0 auf 1 erkennt.
Das ist aber nicht der Fall.

volatile int Signal = LOW;
int ledPin = 13;

void setup() {
Serial.begin (9600);

pinMode (13, OUTPUT);

attachInterrupt(digitalPinToInterrupt(0), alarm, RISING);
}

void loop() {
digitalWrite(ledPin, Signal);
Serial.println (Signal);
}

void alarm()
{
Signal = HIGH;
}

Wo ist der Fehler?


vG

Unregistrierter
04.03.2016, 17:50
Am Eingang 2 eines Uno liegt (auf einem Ozilloskop sichtbar) ein Rechtecksignal mit der Periodendauer 100 ms.

attachInterrupt(digitalPinToInterrupt(0), alarm, RISING);

Wo ist der Fehler?


Sollte doch eher digitalPinToInterrupt(2) sein oder?

https://www.arduino.cc/en/Reference/AttachInterrupt

Unregistriert
04.03.2016, 21:04
Ja, danke, das war es.

Ich habe mich dadurch in verwirren lassen,

dass
attachInterrupt(digitalPinToInterrupt(2), alarm, RISING);
und attachInterrupt(0, alarm, RISING);
beides funktioniert.

vg und danke