Moin zusammen, ich muss die Pausenzeiten zwischen Signalen Zählen, also die Zeit zwischen fallender und steigender Flanke. Im Moment warte ich , dass der Zustand von 1 auf 0 wechselt, und Zähle dann in 10ms Schritten, wie lange der Zustand anhält. Problem dabei ist natürlich, dass es in dieser Zeit den kompletten µController blockiert. Ich vermute mal, dass es bessere Möglichkeiten gibt, allerdings kenne ich sie nicht. Könnte mir jemand einen Schubs in die richtige Richtung geben? Verwendet wird ein Atmel 89c51 Die zu messenden Zeiten liegen zwischen 650ms und 1900ms. Ein schönes Wochenende wünscht Sevi
89c51 ist nicht meine Baustelle! aus meiner Ecke gesehen: (Pseudocode) Init: Timer auf Null initialisieren ext Int. auf fallende Flanke initialisieren ZeitLäuftFlag = 0 ISR_Int: if ZeitLäuftFlag = 1 dann Timer auswerten ZeitLäuftFlag = 0 else Timer auf Null initialisieren Timer starten ext Int. auf steigende Flanke initialisieren ZeitLäuftFlag = 1 'merken das letztes Ereignis eine HL-Flanke war end if reti
Hallo Sev, habe ich vor mehr als 10 Jahren geschrieben, es läuft über HW und auf microsec genau. Ich muss nur die Datei nachsuchen ....
Hallo Sev, googeln mit "AVR Frequency Counter" brachte u.a. folgende Ergebnisse: http://www.cappels.org/dproj/30MHzfmeter/30MhzFmtr.html http://www.ulrichradig.de/home/index.php/avr/frequenzcounter http://www.myplace.nu/avr/countermeasures/index.htm http://www.triplespark.net/elec/analysis/FreqCnt/ Vielleicht für Dich brauchbar?? Grüße aus Wien
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.