attachInterrupt LC Filter ?

Gast #5113279
Lesenswert?

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
Gast #5113354
Lesenswert?

Hallo und Danke für die schnelle Antwort,

bisher habe ich mit Atmelstudio gewirkt, dort mache ich das über 
Register.

Das mit Arduino ist aber sehr schön für Versuche, wie genau beschreibe 
ich denn da eine Flanke  ? Normalerweise hat man dort noch einen Timer 
mit dabei.


Danke für weitere Hinweise
 Karsten
Gast #5113788
Lesenswert?

Danke für deine Hinweise, sehr gut habe das Flag OnChange gefunden damit 
geht es.

Aber nur bis 1.1 Khz dann kommt der gar nicht mehr mit, gibt es hinweise 
wie man das auf 100 Khz ziehen könnte.. scheint so bei weitem zu langsam 
zu sein ..

hmm.,.  schlechte Nachricht für mich wenn das der Fall sei..

Danke  Grüße Karsten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren