Hallo Leute, Ich habe eine Frage ich mache eine Frequenzmessung eines Rechtecksignals mit Hilfe des ICP - Pins eines ATmega 32 @ 16 Mhz. Das eingelsene Rechtecksignal wird proportional Umgewandelt und als PWM Signal ausgegeben. 0-255. Mein Problem bzw. Frage wenn der µP gerade unter dem Ausgeben des PWM Signals ist und ich ändere den Wert des PWM Registers OCR2 0-255 unterbricht dann der µP die aktuelle Ausgabe der PWM und beginnt sofort mit dem neuen geänderten Wert. Da das eingelesene Rechtecksignal nicht periodisch ist sondern asynchron werden die Werte des PWM Register OCR 0-255 ständig geändert. Entsteht dann ein Fehler beim PWM Signal oder wartet der µP ab bis er den Letzten Wert richtig ausgegeben hat und beginnt erst dann mit dem neuen geänderten Wert? Hoffe Ihr versteht ungefähr was ich meine :). MFG Lukas Zopf
Lukas Zopf schrieb: > Hoffe Ihr versteht ungefähr was ich meine :). Atmel nennt das "glitch-free PWM". Neuere AVR haben dieses Feature.
1 | The OCRnx Register is double buffered when using any of the twelve |
2 | Pulse Width Modulation (PWM) modes. For the normal and Clear Timer |
3 | on Compare (CTC) modes of operation, the double buffering is disabled. |
4 | The double buffering synchronizes the update of the OCRnx Compare |
5 | Register to either TOP or BOTTOM of the counting sequence. The |
6 | synchronization prevents the occurrence of odd-length, |
7 | non-symmetrical PWM pulses, thereby making the output glitch-free. |
Hallo, Vielen Dank für die Antwort. Also wenn das PWM Register jetzt wie in meinem Programm z.B. in einer While Schleife asynchron geändert wird. Heißt das soviel ich verstanden habe wird der neue Wert erst dann übernommen wenn TIMER TOP erreicht ist. D.h es dürfte kein Fehler auftreten soweit ich das mitbekommen habe. Ich habe den ATMEGA 32. Muss ich damit die PWM Fehlerfrei arbeitet im Datenblatt schaun ob der AMTEGA 32 gltich free unterstütz bzw. ob es bestimte gepufferte Register gibt oder ist wie ich oben schon erwähn habe die PWM sowiso fehlerfrei da der asynchorne neue Wert erst bei TIMER TOP erreicht wird. ???? MFG
Lukas Zopf schrieb: > Ich habe den ATMEGA 32. Muss ich damit die PWM Fehlerfrei arbeitet im > Datenblatt schaun ob der AMTEGA 32 gltich free unterstütz bzw. ob es > bestimte gepufferte Register gibt oder ist wie ich oben schon erwähn > habe die PWM sowiso fehlerfrei da der asynchorne neue Wert erst bei > TIMER TOP erreicht wird. ???? Im Datenblatt ist bei jedem Timer eine Tabelle dabei (in der hintersten Section, die normalerweise irgendwas mit "Register Description" heißt). In dieser Tabelle sind alle Modi aufgelistet, die der Timer kann. Bei jedem Modus steht dabei, wodurch die Obergrenze des jeweiligen Timers festgelegt wird (fixer Wert oder Register) und auch wann der jeweilige OCR Wert sein Uupdate erhält. Einfach mal reinschauen. Diese Tabellen sind für mich einer der wichtigsten Teile im ganzen Datenblatt. (Soll heißen: die brauche ich oft) Beim Mega32 ist das zb für den Timer 1 die Datenblattsektion 16.10 Register Description und die angesprochene Tabelle findet sich als Tabelle 16.5 auf Seite 114 wieder.
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.