Forum: Mikrocontroller und Digitale Elektronik Fragen zu Timer bei Mega8


von Physik AG (Gast)


Lesenswert?

Für einen Versuchsaufbau im LK Physik suchen wir eine möglichkeit mit 
einem Mikrocontroller die Zeit zwischen positiven oder negativen Flanken 
zu messen.

Da wir in der schule ein Mega8 Board haben, war unser gedanke einen 
Timer per  INT0 bei Positiver Flanke zu starten.
Bei der nächsten positiven flanke, soll dann in der ISR der Timer 
gestoppt werden.

Damit ist für uns bereits möglich zeiten zu messen.
Das Signal bekommen wir praktischerweise von unserem versuchsaufbau 
direkt in 5V level geliefert.

Gibt es da vielleicht noch eine Sonderfunktion des Chips, die 
automatisch bei einer Flanke einen timer startet und bei der nächsten 
gleichen flanke (also 2x positive) wieder stoppt?
Das Datenblatt ist recht komplex und unser technisches Englisch leider 
nicht ganz ausreichend...

Wir lesen hier von ICP etc.

Ein wenig Hilfe dazu währe seeehr nett.

Vielen Dank!

von Falk B. (falk)


Lesenswert?

@ Physik AG (Gast)

>Wir lesen hier von ICP etc.

Ja, damit kann man das sehr genau machen.

>Ein wenig Hilfe dazu währe seeehr nett.

Im Prinzip ganz einfach. Der 16 Bit Timer läuft immer. Wenn jetzt 
eine Flanke am ICP reinkommt, wird der aktuelle Timerwert gespeichert 
und ein Interrupt ausgelöst. Den springt die CPU an und kopiert den 
Wert aus dem Spezialregister in eine Variable (16 Bit). Danach wird der 
ICP umgestellt, dass er jetzt auf die fallende Flanke reagieren soll. 
Wenn die dann eintrifft wird wieder durch den ICP der Timerwert 
gespeichert und ein Interrupt ausgelöst. Aus der Differenz der beiden 
Timerwerte kann man sehr genau die Zeit berechnen.

MFG
Falk

von Physik AG (Gast)


Lesenswert?

Hallo Falk,

das ist ja echt mehr als wir gedacht hätten, was dieser kleien Chip 
alles kann.
Ist es denn auch möglich jeweils auf steigende Flanken zu reagieren oder 
funktioniert nur die Kombination Steigend/fallen, Fallend/Steigend?

von Falk B. (falk)


Lesenswert?

@ Physik AG (Gast)

>Ist es denn auch möglich jeweils auf steigende Flanken zu reagieren

Sicher. Man kann auf steigende, fallende oder beides reagieren. Siehe 
Datenblatt.

MFG
Falk

von Kachel-Heinz (Gast)


Lesenswert?

Du kannst so ziemlich alle Kombinationen auswerten:

- steigend - steigend (Periodendauer)

- fallend - fallend (Periodendauer)

- steigend - fallend (Impulsdauer)

- fallend - steigend (Impulspause)

Du musst nur in der ICP-ISR die Flankenart des nächsten Interrupts 
einstellen.

KH

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.