Forum: Compiler & IDEs Zeitmessung von Flanken gesteuert mit dem Timer


von onkelm (Gast)


Lesenswert?

Hallo Leute,
ich bin erst seit kurzem in der Welt der Mikrocontroller unterwegs.
Deshalb bitte icht böse sein wenn ich dumme Fagen stelle. Eingearbeitet 
habe ich mich bereits mit
den Tutorials auf dieser Seite. Nun aber zu meiner Aufgabe:

Ich habe einen Pegel zwischen 0V und 10V bei dem ich die Zeiten messen 
möchte.
Dabei ist Pegel LOW eine Aufladezeit und der Pegel HIGH eine Entladezeit 
die variiert.
Ich habe schon gelesen das ich mit dem externen PIN T1 steigende sowie 
fallende Flanken
erkennen kann.
Mein Programm hab ich mir vorerst auf einem Blatt Papier so vorgetellt:

PINT1 erkennt fallende Flanke -> Zähler beginnt zu laufen
PINT1 erkennt steigende Flanke -> Zählwert abspeichern, Zähler 
rücksetzen und wieder starten
PINT1 erkennt fallende Flanke -> Zählwert abspeichern, Zähler rücksetzen 
und wieder starten
Anschließend soll das Verhältnis gebildet werden.

Da ich den ATmega mit 8MHz betreiben will und die Zeiten im Bereich von 
10ms-50ms liegen wollte
ich den 8-bit Timer verwenden. Zudem wollte ich vorerst auf Interrupts 
verzichten.
Programmieren werde ich mit dem AVR Studio in C.

Also grundlegend weiß ich was ich machen möchte, nur kann es so 
funktionieren? Hat sowas schonmal jemand gemacht?

von Karl H. (kbuchegg)


Lesenswert?

onkelm schrieb:

> Zudem wollte ich vorerst auf Interrupts
> verzichten.

Keine so gute Entscheidung, auch wenn es im Prinzip nach deiner 
Strategie machbar ist.

> Also grundlegend weiß ich was ich machen möchte, nur kann es so
> funktionieren?

Probiers aus.

> Hat sowas schonmal jemand gemacht?

<Lächel>
Du bist der Erste.


Im Ernst. Natürlich hat das schon wer gemacht. Die eine Hälfte deiner 
Applikation ist im Grunde dieselbe Technik, die man bei einem 
Frequenzzähler benutzt.
Ein Tip: Du kannst dir eine Menge Arbeit sparen, wenn du die Input 
Capture Funktionalität vom Timer 1 benutzt.

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.