-
-
Erfahrener Benutzer
Robotik Visionär
Die Lösung ist schon gar nicht schlecht, und unterscheidet sich eigentlich nicht von echtem 16 Bit PWM. Alternativ könnte man auch als 8 Bit PWM
zwischen den High Byte und dem Highbyte+1 umschalten. Das gibt dann kein normales PWM aber im Mittel das gleiche.
Bei der Umsetzung ist allerdings noch ein Fehler drin: die Interruptsroutine sichert nicht den Prozessor status. Dadurch kann es im Hauptprogramm zu ziehmlich seltsamen Effekten kommen. Eventuell sollte man auch die anderen benutzten Register auf den Stack retten. Das ist aber in ASM optional, denn man kann auch einfach ein paar Register für die Interrupts reservieren.
Bei einigen Werten könnte es immer noch zu kleinen Fehlern kommen ( <255). Auch ist man darauf angewiesen das der 8 Bit PWM den OCR-wert Puffert. Soweit ich weiss wird das nicht bei allen Chips/Timern gemacht.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen