Forum: Mikrocontroller und Digitale Elektronik AVR - Zeitabmessung


von Timo Gessner (Gast)


Lesenswert?

Hi.
Ich habe ein Signal mit einer veränderlichen Impulsbreite. Wie kann ich
das Signal mit einem Atmel-AVR mit den veränderlichen Impulsbreiten
empfangen und diese entsprechend auswerten?
Danke.

Timo Gessner

von Werner Hoch (Gast)


Lesenswert?

Sag bitte dazu wie breit die Pulse sind und mit welcher Wiederholrate
die Pulse kommen, davon hängt die geeignete Methode der Messung ab.

von Timo Gessner (Gast)


Lesenswert?

Danke für deine Antwort.
Das Signal hat eine Frequenz von 1Hz und die Pulse sind 100ms oder
200ms lang.

von Timo Gessner (Gast)


Lesenswert?

Ist das mit der Zeitmessung nicht möglich bei AVR-µC?

von Werner Hoch (Gast)


Lesenswert?

Signale dieser länge vermißt man am besten mit dem
TimerCaptureInterrupt.

Dazu wird der Timer initialisiert und eingeschaltet. Den Vorteiler
(Prescaler) legt man am besten so, daß der die Maximale Impulsbreite
weniger als 0xffff Timertakte beansprucht:
prescaler > Controllertakt / 0xffff * Impulszeit
Damit muß man sich dann keine weiteren Gedanken um Timerüberläufe
machen.

Nach dem Einschalten des TimerCaptureInterrupts, den du auf die
steigende Flanke eingestellt hast, wird der Interrupt bei der ersten
steigenden Flanke aufgerufen.
In der Interrupt Service Routine speicherst du den Capturewert als
Startwert ab und stellst den Capture interrupt auf die fallende Flanke
um.
Beim nächsten Interrupt kannst du die Zeitdifferenz berechnen.

von Timo Gessner (Gast)


Lesenswert?

Gut,
danke schön.

von Timo Gessner (Gast)


Lesenswert?

Hat den eigentlich der ATtiny26 einen TimerCapture. Konnte im datenblatt
nichts entdecken(übersehen?)?

Timo Gessner

von Condor (Gast)


Lesenswert?

DCF 77 Programm beispiele gibt es doch genug schau sie dir halt mal an !

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.