Hallo! Ich will ohne externe Beschaltung zum Ansteuern eines kleinen Schrittmotors zwei Sinus-Verläufe mit einem Timer und möglichst hoher PWM-Frequenz erzeugen. Als Referenzpunkt nehme ich einen Portipn. In der oberen Halbwelle ist dieser Pin auf Masse, die PWM arbeitet normal. In der unteren Halbwelle ist der PIN auf +5V (high), die PWM müsste jetzt invertiert laufen. Also entweder mit COMxA0 auf 1 oder mit Werten in der Form 255, 215, ..., 0, 215, 255. Knackpunkt ist der Wechsel von oberer auf untere Halbwelle (oder andersrum). Da die Frequenz des Sinus von einem anderen Interrupt gesteuert wird wird der Wert des OCRx-Registers bzw. des COMxA0 Flags nicht synchron übernommen sondern erst beim nächsten TxOVF oder Compare-Match. Da ich aber in dem Interrupt den Portpin schon ändern muss habe ich beim Umschalten immer irgendwelche ungewünschten Impulse in meinem Sinus! Die der PWM-Timer ohne Vorteiler läuft möchte ich es eigentlich vermeiden extra dessen Interrupt nutzen. Der ganze Quatsch wäre schon längst erledigt wenn das COMxA0 Flag SOFORT ausgewertet würde bzw. wenn das Force Output Compare auch im PWM-Modus funktionieren würde... Grüße Robert
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.