PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM auswerten



The Man
07.06.2007, 10:59
Moin,

ich wollte ein eingehendes PWM Signal auswerten. Gemessen wird die Dauer zwischen zwei HIGH Pulsen.
Dazu habe ich den INT1 als Interruptquelle genommen.
In der Routine wird der TCNT0 ausgelesen, mit einer Konstanten verglichen und in größer kleiner eingeteilt. Dann wird er TCNT0 Null gesetzt.
Zu Testzwecken lasse ich mir im Moment die ausgelesenen Werte über LED´s ausgeben. Die sind alles andere als stabil.
Hat jemand eine Idee, wie ich die Pulsweite zwischen zwei HIGH´s sicher bestimmen kann?

Danke,
The Man

MartinITM
07.06.2007, 23:29
Hast du den Timerüberlauf berücksichtigt? Vielleicht ist der Timer zu schnell und das PWM zu langsam ?
Würde mir jetzt spontan einfallen.

LG
Martin

bax
08.06.2007, 07:26
Laufen noch andere Interrupt-Routinen, die könnten die Messung ausbremsen. Abhilfe wäre hier die Input-Capture-Funktion vom Timer1, wenn der noch frei sein sollte.

Aber davon abgesehen, bei einem PWM-Signal sollte doch der Abstand zwischen zwei Low->High-Flanken immer gleich sein, interessant ist doch, wie lange das High-Signal im Verhältnis zum Low ansteht.

greetz Rajko

The Man
08.06.2007, 13:46
Im Moment ist das der einzige Interrupt. Und das das am Überlauf liegt, kann ich mir nicht vorstellen. Da ich immer am selben Moment den TCNT0 = 0 setzte, müsste ja auch der Überlauf bei nicht ändernder Pulsweite immer gleich sein.