Forum: Mikrocontroller und Digitale Elektronik Impulse werden falsch gezählt


von Torsten (Gast)


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.

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.