Hallo, ich bin aktuell mit der Ansteuerung eines Motors beschäftigt und setze mich deshalb mit PWM auseinander. Ich arbeite mit einem Atmega164PA. Mit den Fast PWM Modi komme ich zurecht mit Ausnahme des Modus 15 bei dem das Register OCR1A zur Definition des TOP Werts des Counters verwendet wird. Normalerweise wird OCR1A verwendet um den Vergleichswert einzustellen und der TOP Wert des Counters ist fest. Mir fehlt also im Modus 15 sozusagen die Möglichkeit einen Vergleichswert einzustellen da das Register schon benutzt wird um den TOP Wert einzustellen. Mir ist also nicht klar wie ich die Pulsbreite in diesem Modus regulieren kann (außer 100%, 50% und 0%). Ich hoffe ich habe mich nicht zu umständlich ausgedrückt. Vielen Dank und liebe Grüße.
Lukas S. schrieb: > Normalerweise wird OCR1A verwendet um den Vergleichswert einzustellen und OCR1B > Mir fehlt also im Modus 15 sozusagen die Möglichkeit einen > Vergleichswert einzustellen da das Register schon benutzt wird um den > TOP Wert einzustellen. Mir ist also nicht klar wie ich die Pulsbreite in > diesem Modus regulieren kann (außer 100%, 50% und 0%). Nur noch mit OCR1B auf OC1B Ausgang
Lukas S. schrieb: > Mir fehlt also im Modus 15 sozusagen die Möglichkeit einen > Vergleichswert einzustellen da das Register schon benutzt wird um den > TOP Wert einzustellen. Mir ist also nicht klar wie ich die Pulsbreite in > diesem Modus regulieren kann (außer 100%, 50% und 0%). Gar nicht, der Modus ist eigentlich gar keine PWM mehr. Bei 14 kannst du mit ICR den TOP-Wert einstellen und mit OCR1x den Vergleichswert, hast also Kontrolle über Frequenz und Duty Cycle. Bei Modus 15 hast du nur Kontrolle über die Frequenz weil der Timer ja auf 0 springt sobald TOP erreicht wurde. Du kannst also OC1x setzen, löschen oder toggeln. Toggeln ergibt 50% Duty und setzen/löschen entweder 100% oder kurze Nadelpulse, das weiss ich so grad nicht. Modus 15 kannst du für ne FSK verwenden.
THOR schrieb: > Gar nicht, der Modus ist eigentlich gar keine PWM mehr. Blödsinn, natürlich ist das PWM. > Bei Modus 15 hast du nur Kontrolle über die Frequenz weil der Timer ja > auf 0 springt sobald TOP erreicht wurde. Du hast definitiv das Konzept der Timer nicht begriffen. Es hängt vom Timer-Modus ab, was man kontrollieren kann. Je nach Modus kann man mal die Frequenz kontrollieren (also über Taktquelle und Prescaler hinaus) und mal nicht, hat dafür aber mehr PWM-Kanäle zur Verfügung. Wie das genau umgesetzt ist, hängt vom konkreten Device und Timer ab. Der Pferdefuss ist halt, dass immer nur eine begrenzte Zahl von Hardwareregistern im Timer existieren und diese je nach Modus unterschiedlich verwendet werden können. Mal ist OCRA halt ein Register, welches den Duty von PWM-Kanal A steuert, mal ist es ein Register, welches die PWM-Frequenz steuert. Dann steht halt Kanal A nicht als PWM-Kanal zur Verfügung. Jedem, der Datenblätter lesen kann, wird das unmittelbar klar. Indem man es (bzw. sie) einfach nur mal liest...
Mit dem Datenblatt beschäftige ich mich durchaus. Also kann man sagen dass ich im Modus 15 OCR1A als Output für das PWM Signal "verliere" aber den einen Motor problemlos mit dem Signal von OCR1B steuern kann?
Ja. Wobei beim Timer1 die Frequenz auch mit dem ICR eingestellt werden kann. Dann steht auch das OCR1A wieder für PWM zur Verfügung. Das ist allerdings nicht dasselbe wenn im Betrieb nicht nur der Duty, sondern auch die Frequenz verändert werden soll.
Lukas S. schrieb: > Mit dem Datenblatt beschäftige ich mich durchaus. Ich nehme zu deinen Gunsten an, dass das die Wahrheit ist. Dann hast du dich aber definitiv nicht intensiv genug damit beschäftigt... Diese AVR8-Timer sind nun wirklich recht primitive Hardware. Was willst du machen, wenn du mal richtig potente µC-Peripherie programmieren musst? Wieder heulend hier im Forum aufschlagen? Also mir wäre das irgendwie peinlich. Na klar, niemand kann alles wissen und bei komplexerer funktionsreicher Hardware gibt es trotz DB und ANs nicht selten Aspekte, die durch die Dokumentation nicht hinreichend beleuchtet werden, weil auch diese Werke nur von Menschen verfasst werden, und diese eben nur die "übliche" Nutzung der Hardware im Kopf hatten. Aber wie schon gesagt: AVR8-Timer sind absolut triviales Zeug. Alles, was man dazu wissen muss, kann man problemlos aus den verfügbaren Quellen eruieren. Man muss es nur tatsächlich auch wollen...
Beitrag #4951048 wurde von einem Moderator gelöscht.
THOR schrieb: > Gar nicht, der Modus ist eigentlich gar keine PWM mehr. Bei 14 kannst du > mit ICR den TOP-Wert einstellen und mit OCR1x den Vergleichswert, hast > also Kontrolle über Frequenz und Duty Cycle. > > Bei Modus 15 hast du nur Kontrolle über die Frequenz weil der Timer ja > auf 0 springt sobald TOP erreicht wurde. > > Du kannst also OC1x setzen, löschen oder toggeln. Toggeln ergibt 50% > Duty und setzen/löschen entweder 100% oder kurze Nadelpulse, das weiss > ich so grad nicht. Noch einer, der das Datenblatt lesen sollte. > Modus 15 kannst du für ne FSK verwenden. Was auch immer du mit FSK meinst.
Beitrag #4951109 wurde von einem Moderator gelöscht.
Beitrag #4951339 wurde von einem Moderator gelöscht.
Beitrag #4951344 wurde von einem Moderator gelöscht.
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.