PWM Ausgang ist immer konstant

Gast #1177008
Lesenswert?
• ▲
▼
Hallo Leute,


Ich möchte am ATmega16 mit L293D den Timer1 dazu verwenden eine Motor 
mit PWM zu steuern. Timer1 deswegen da dort zwei Ausgänge vorhanden sind 
(für zweiten Motor).
U = 12V

Für mich in Frage kommt also Mode 15. Bei TCNT1=BOTTOM soll also der OCx 
auf HIGH gesetzt werden. Bei Erreichen von OCR1A, den ich im 
Programmfluss verändere, wird TOP erreicht und damit OCx auf LOW 
geschalt. Von da an läuft der Timer noch bis zum Ende und bleibt dabei 
LOW bis es von vorn beginnt - so mein Verständnis von der PWM.

Bei Mode 15 habe ich im Datenblatt kein MAX Value gefunden - heißt das 
also MAX=65535 ??
Das ist ein wenig groß für meinen Zweck, aber schenbar kann ich es nicht 
umgehen, richtig?

Ich habe Probleme den Prescaler N und TOP gleichzeitig herauszufinden. 
Für dessen Berechnung mus sich ja die PWM Frequenz wissen, ich habe mal 
vernommen um die 2 - 15 kHz seien gut. D.h. bei Prescaler N=1 bekomme 
ich
bei TOP = 255 einen Wert um 15kHz.

Aber mein Motor läuft konstant mit 12V (Multimeter Angabe).
Was läuft falsch ? Ist der TOP Wert zu klein?

Danke vielmals für Hilfe.
Alex
Gast #1177239
Lesenswert?
• ▲
▼
>Für mich in Frage kommt also Mode 15. Bei TCNT1=BOTTOM soll also der OCx
>auf HIGH gesetzt werden. Bei Erreichen von OCR1A, den ich im
>Programmfluss verändere, wird TOP erreicht und damit OCx auf LOW
>geschalt. Von da an läuft der Timer noch bis zum Ende und bleibt dabei
>LOW bis es von vorn beginnt - so mein Verständnis von der PWM.

Bei Fast PWM fängt der Timer bei 0 an zu zählen und wird beim Erreichen 
des Werts des OCR1A-Registers zurückgesetzt.

Damit wird OCR1A als TOP benutzt, der die Wiederholfrequenz festlegt.


>Bei Mode 15 habe ich im Datenblatt kein MAX Value gefunden - heißt das
>also MAX=65535 ??
s.o.

Die Pins reagieren (vermutlich) auf den anderen - OCR1B - Wert.
Wenn man ICR als TOP-Register nimmt, kann man beide OCR1-Pinpaare für 
die PWM benutzen.
Gast #1177326
Lesenswert?
• ▲
▼
Ich habe das Teil jetzt mit dem PWM im 8-Bit modus am laufen (Mode 5).
Da verstehe ich aber das Datenblatt nicht. Es steht dort, dass TOP = 
0xFF wäre. Das ist doch aber falsch. MAX ist 0xFF und TOP ist mein OCR1x 
Wert.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.