Zeit Zählen - Beste Möglichkeit

Gast #937933
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
Gast #937946
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

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