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.
Gast
#1677096
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
Sorry, AVR Studio GCC. Mit 91 Stufen würde ich auf alle Fälle auskommen.
Gast
#1677149
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?
Gast
#1677156
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.
Gast
#1677204
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
Danke Du hast mir sehr geholfen! :-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.