Hallo, ich hoffe jemand kann mir beim konfigurieren einer PWM helfen. Ich habe es mit dem Datenblatt des ATmega32 und mit dem PWM Tutorial hier auf dieser Seite probiert. Ohne erfolg! Meine anforderung: ich möchte einen HI Puls von 16 Taktlängen gefolgt von einem LOW von 404 Taktlängen. Laut Datenblat überhaupt kein problem: Seite 114 Tabelle 16-5 Modus 14 WGM13 = 1, WGM12 = 1, WGM11 = 1, WGM10 = 0. Fast PWM. Zähler soll angeblich bis ICR1 zählen (siehe Seite 105 Figur 16-7) und dann zurückgesetzt werden. Dann: (Seite 113 Tabelle 16-3) COM1A1 = 1, COM1A0 = 0. OC1A löschen bei Timer gleich vergleichswert und setzen bei 0. nurnoch ICR1 auf 420 setzen und OCR1A auf 16. Und so komme ich zu folgendem Sourcecode: #include<io.h> int main(void) { TCCR1A = 1<<COM1A1 | 1<<WGM11; TCCR1B = 1<<WGM13 | 1<<WGM12 | 1<<CS10; ICR1 = 420; OCR1A = 16; DDRD = 0; while(1){} return 0; } Tja! Aber denkste! Machen tut er was anderes. Ein Tracen mit F10 ergab: Er Zählt von 0 bis 1FF und dann wider zurück von 1FF bis 0. Beim runterzählen und erreichen von 16 wird der Ausgang gesetzt und beim Hochzählen bei 16 rückgesetzt. Das entspräche ja dem Phasen und Frequenz korecktem PWM modus und zählen bis top = 1FF. Herlich diesen modus gibt es in der Tabelle 16-5 seite 114. Wie dem auch sei, ich habe natürlich schon einiges an konfigurationen durchprobiert. Das was ich dabe NIEMALS hinbekommen habe ist, dass der Zähler bis ICR1 gezählt hat! er hat immer nur bis FF oder 1FF oder 3FF gezählt, aber niemals bis zu einem Registzervergleichswert! Hat jemand ne idee?
Sorry! Das entspräche ja dem Phasen und Frequenz korecktem PWM modus und zählen bis top = 1FF. Herlich diesen modus gibt es GARNICHT in der Tabelle 16-5 seite114. ...solte es heißen
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.