Impulse werden falsch gezählt

Gast #1585393
Lesenswert?

Ich benutze derzeit folgenden Code, um Eingangsimpulse zu zählen:

ISR(TIMER3_CAPT_vect)
{

   if (flanke_anz==1)
       {
      zeit1=ICR3;
      ueberlauf=0;
      }
   if (flanke_anz==2) //ab jetzt Überläufe zählen

       {
      zeit2=ICR3;
    }
    flanke_anz++;
}


ISR( TIMER3_OVF_vect)
{
      ueberlauf++;
}

in der main wird dann einfach berechnet wie groß die Differenz ist und 
wieviel Überlaufe es gab.

PROBLEM:
klappt recht gut wenn ich einen Frequenz-Generator anschließe. Bei einer 
Gabellichttschranke funktioniert es aber nicht sehr gut - mögliche 
Ursachen wird wohl das Schwingen des Motors sein oder aber - und das ist 
wohl vielmehr das Problem - die Störimpulse, die auf dem Oszi teilweise 
mit bis zu 1 Volt gemessen werden, also ausreichend, um einen rising 
edge trigger auszulösen.

1. Wie krieg ich die Störimpulse weg ?
2. Nach was muss ich suchen, wenn ich ein IC haben möchte, dass mir die 
Frequenz in eine analoge Ausgangsspannung umwandelt ? Dann könnte ich 
eventuell mit DSpace erstmal arbeiten um meine Regelstrecke besser 
beurteilen zu können.

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