Forum: Mikrocontroller und Digitale Elektronik Zeit Zählen - Beste Möglichkeit


von Sev (Gast)


Lesenswert?

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

von Carsten (Gast)


Lesenswert?

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

von Hans (Gast)


Lesenswert?

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 ....

von ibsimed1 (Gast)


Lesenswert?


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.