Gast
#5113279
Hallo zusammen, ich habe mit einem Arduino nano einen Interrupt handler über den Port 2 hergelitten. Alles wunderbar. Leider zählt der Interrupt alles mögliche nur nicht meine vom Freq. Genrator gelieferten 5V Rechtecke, da entstehen doppelmessungen. Ich möchte von 0.5Hz bis 1Mhz lediglich einen flanken-Counter inkrementieren der bei einem bestimmten stand einen anderen Puls liefert zb. um eine Kamera zu triggern die über die Impulse auf der Achse geliefert werden. Muss hier ein LC Glied eingebracht werden ? Warum zählt der Counter gegen Masse ich hätte sehr gerne das dieser erst im Positiven Fall alktiv wir.. Hier mal das funktinierende Example mit Serial Feedback. int LED=13; int OUTPORT=5; volatile unsigned long alteZeit=0, entprellZeit=1000,ti,stat=0,cnt(0); void setup() { Serial.begin(115200); pinMode(OUTPORT, OUTPUT); // LED Pin pinMode(LED, OUTPUT); // LED Pin pinMode(2, INPUT); // Pin 2 ist INT0 digitalWrite(2, HIGH); // interner Pull up Widerstand auf 5V (gegen Masse=HIGH gegen 5V=LOW) attachInterrupt(0, interruptRoutine, LOW); // Pin 2 (INT 0) geht auf 0V (LOW) dann interruptRoutine aufrufen } void loop() { delay(1000); // Dauerschleife //unsigned long time; //Serial.print("Time: "); //time = micros(); //prints time since program started Serial.println(cnt); cnt=0; // wait a second so as not to send massive amounts of data } void interruptRoutine() { ti=micros(); if((ti - alteZeit) > entprellZeit) { stat^=1; digitalWrite(LED, stat); // OUT umschalten digitalWrite(OUTPORT, stat); // LED umschalten alteZeit = ti; // letzte Schaltzeit merken cnt++; } } Der Input flattert reichlig, danke für Hinweise.. Grüße aus Berlin Karsten