Hi, jetzt "wurste" ich mich schon seit geraumer Zeit durch diverse Beiträge und das Datenblatt, komme aber leider nicht so recht ans Ziel. Controller: ATmega324P Takt: 14745600 Hz Ich will ein Hardware-PWM-Signal mit einer Frequenz von 5kHz erzeugen. Das Ganze soll auf PB4 ausgegeben werden. Könnt Ihr mir bitte anhand eines Beispielcodes zeigen wie die Register zu setzen sind? Vielen Dank schonmal.
Hi Programmiersprache wäre auch interessant. Problematisch ist deine gewünscht Frequenz. Mit dem 8-Bit-Timer und und deinem Prozessortakt lassen sich in der Grössenordnung bei voller PWM-Auflösung nur 1,8kHz und 7,2kHz erzeugen. 5kHz geht nur mit verringerter Auflösung (91 Stufen). MfG Spess
Hi TCCR0A = 1<<COM0B1|1<<WGM00 TCCR0B = 1<<WGM02|1<<CS01 OCR0A = 0x5C OCR0B = 0x00...0x5C -Vorteiler 8 -Mode5 PWM, Phase Correct -Clear OC0B on Compare Match when up-counting. Set OC0B on Compare Match when down-counting. Wenn ich mich nicht verlesen habe sollte das passen. Syntax solltest du noch mal überprüfen da meine C-Kenntnisse minimal sind. MfG Spess
Kannst Du mir bitte daran erläutern, wo Du Die Frequenz des PWM-Signals festlegst. Mit welchem Register lege ich dann die Pulsbreite fest?
Hi >Kannst Du mir bitte daran erläutern, wo Du Die Frequenz des PWM-Signals >festlegst. OCR0A >Mit welchem Register lege ich dann die Pulsbreite fest? OCR0B Ein Blich ins Datenblatt schadet nicht. MfG Spess
Das habe ich getan, leider blieb bei meiner Registerkonfiguration die Änderung OCR0A ohne Auswirkung. Jetzt geht es. Allerdings muss OCR0A = 185 sein damit ich auf 5kHz komme. Wie berechnet sich das nun? Ich will es ja auch verstehen. Danke schonmal soweit.
Hi >Allerdings muss OCR0A = 185 sein damit ich auf 5kHz komme. Stimmt. Ich hatte mit Fast PWM gerechnet. >Wie berechnet sich das nun? Ich will es ja auch verstehen. Danke >schonmal soweit. Das Datenblatt ist an dieser Stelle etwas unvollständig. Die Formeln für die PWM-Frequenz gelten nur für einen Topwert von 255. Für Phase Correct PWM kannst du aber die Formel für CTC verwenden. MfG Spess
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.