Forum: Compiler & IDEs Umstellung Timer-Betriebsmodus, ppm auslesen, pwm erzeugen


von Biggie (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich will mit einem 16-Bit Timer des ATmega128 pwm-Signale für 4 Servos 
erzeugen, im 40ms-Takt, und dazwischen, also 32ms lang, das ppm-Signal 
der Fernbedienung auslesen.
PWM erzeugen mit einem Timer im Überlauf-Modus funktioniert, PPM 
auslesen mit einem Timer im Capture-Modus auch, aber wenn ich den Timer 
für beides gleichzeitig benutzen will gehts nicht.
ich hab gehofft, mit TIMSK |=(1<<TICIE1|1<<TOIE1); sowohl ein überlauf 
nach 32ms als auch die Länge des ppm-Signals zu bekommen.

quelltext ist im anhang, ich hoffe es kann mir jemand so helfen, dass 
ich mir den 2. Timer aufsparen kann :)

lg biggie

von Peter D. (peda)


Lesenswert?

Nimm statt des Overflow einfach den (die) Compareinterrupt(s).
Dann kannst Du den Timer frei laufen lassen und somit gleichzeitig 
capturen und pulsen.
Damit entfallen sämtliche Umschaltprobleme.

Hinweis:
Zeitdifferenzen stimmen auch über einen Überlauf hinweg.


Peter

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.