-
-
Erfahrener Benutzer
Roboter-Spezialist
PWM auswerten
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
-
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
-
Erfahrener Benutzer
Fleißiges Mitglied
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
-
Erfahrener Benutzer
Roboter-Spezialist
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.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen