Für die Erzeugung eines PWM Sigmals gibt es ja beim AVR mehrere Möglichkeiten Der Phase Correct PWM Mode... ...wobei hier der Zähler immer wieder von 0 nach MAX und dann von MAX nach 0 zählt. Im noninverting Compare Output mode, wird beim heraufzählen der Output Compare (OC) gelöscht, und beim herunterzählen wird Output Compare gesetzt. Ausschlaggebend ist der Vergleich (Compare-Match) zwischen TCNTn-Register (hier ist der aktuelle Zählerstand der Timers) und OCRn-Register (hier kommt der PWM-Wert rein). Im inverting Compare Output-Modus, wird der Vorgang umgekehrt, also beim heraufzählen wird das Output Compare (OC) bei Übereinstimmung von TCNTn-Register und OCRn-Register (Compare-Match) gesetzt und beim herunterzählen (beim Compare-Match) gelöscht. ...und der Fast PWM Mode Hierbei zählt der Timer immer von Null an aufwärts, bis der Maximalwert erreicht ist. Danach fängt er wieder von vorne bei Null an. Den gewünschten PWM-Ausgangswert lege ich wieder im OCRn-Register ab. Beim Compare-Match wird wieder der OC je nach Einstellung gelöscht oder gesetzt. Welche Betriebsart nehme ich jetzt für die Erzeugung einer Wave am entsprechendem Ausgang.
Du hast das Prinzip schon richtig verstanden, aber deine Frage macht keinen Sinn. Es kommt auf den Anwendungszweck an, denn der Phase Correct mode erzeugte (wie der Name halt sagt) IMMER ein Phasenkorrektes Signal, AUCH, wenn man den PWM Wert ändert, ändert sich nicht der Phasenwinkel und somit ist die Frequenz dauerhaft konstant. Beim Fast Mode hast du halt eine höhere Ausgangsfrequenz, aber bei jeder PWM Änderung hat man unter Umständen eine Periodendauer lang eine andere Frequenz am Ausgang oder sogar starke glitches/spikes. Ich finde das im Datenblatt eigentlich recht gut erklärt. Muss man halt auch mal das Gehirn anschalten und darüber nachdenken ;)
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.