Forum: Mikrocontroller und Digitale Elektronik Interrupt arduino


von Peter (Gast)


Lesenswert?

Hallo,
ich wollte mitm Arduino Interrupts machen. Aber irgendwie möchte der 
nicht so wirklich.
1
int pin2 = 2;
2
int pin3 = 3;
3
int pin4 = 4;
4
5
void setup() {
6
  pinMode (pin2, INPUT);
7
  pinMode (pin3, INPUT);
8
  pinMode (pin4, INPUT);
9
  
10
  attachInterrupt(pin2, pin2_alarm, FALLING);
11
  attachInterrupt(pin3, pin3_alarm, FALLING);
12
  attachInterrupt(pin4, pin4_alarm, FALLING);
13
}
14
15
16
17
void loop() {
18
}
19
20
void pin2_alarm(){
21
  Serial.println("pin_2");
22
}
23
24
void pin3_alarm(){
25
  Serial.println("pin3_alarm");
26
}
27
28
void pin4_alarm(){
29
  Serial.println("pin4_alarm");
30
}

ich habe mal sehr viel aus meinem Code gelöscht, sodass er mir nur 
anzeigen soll, dass er ein der routine reingegangen ist. Aber es 
passiert einfach nichts.

Weis einer, was daran noch falsch ist?

von StefanL (Gast)


Lesenswert?

Moin!

Peter schrieb:
>
1
>   attachInterrupt(pin2, pin2_alarm, FALLING);
2
>   attachInterrupt(pin3, pin3_alarm, FALLING);
3
>   attachInterrupt(pin4, pin4_alarm, FALLING);
4
>

Da wichtige Infos fehlen, gehe ich mal davon aus, dass Du einen Arduno 
Uno nutzt. Die Referenz sagt zur Interrupt-Funktion, dass Du nicht den 
pin angeben sollst, sondern den Interrupt. Beim Uno gibt es davon zwei. 
Int0 liegt auf Pin 2, Int 1 auf Pin 3. Alles nachzulesen unter

http://arduino.cc/en/Reference/AttachInterrupt

von Max M. (jens2001)


Lesenswert?

Lies dir mal durch wie man eine InteruptServiceRoutin (ISR) richtig 
deklariert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.