16bit PWM mit ATMega 162

Gast #100257
Hallo,
ich bins wieder.
ich verzweifel grad an nem 16bit PWM.
Hier erstmal mein Code zur initialisierung:

  TCCR1A |= (1 << WGM11);
  TCCR1A |= (1 << COM1A0);
  TCCR1A |= (1 << COM1A1);
  TCCR1A |= (1 << COM1B0);
  TCCR1A |= (1 << COM1B1);
  TCCR1B |= (1 << WGM13);
  TCCR1B |= (1 << CS11);
  OCR1A = 0;
  OCR1B = 0;
  ICR1 = 0xffff;

Also wie man hoffentlich an den Einstellungen sieht soll er bis ICR1
hochzählen (0xffff) und beim compare die Ausgänge OC1A und OC1B
setzten, bzw rücksetzten.
DIe beiden Register OCR1A und OCR1B werden später im Programm noch auf
einen höheren Wert gesetzt (0x7530). Da ich schon nen Display am MC am
laufen habe, habe ich mir mal die beiden OCR Register und das TCNT1
anzeigen lassen und das sieht ganz gut aus. Also der TCNT1 läuft bis
0xffff hoch und dann wieder runter... Aber warum werden nun nicht die
Ausgänge gesetzt?

Danke schon mal,
Bandit
Gast
Hi,

haste die entspechenden I/O Pins auch als Ausgang deklaiert?
Globale Intterupts nicht aktiviert?

zumindest muss man da bei Bascom draufachten .

Mfg

Dirk
Gast
Jo, super, das wars. Hätten se auch ruhig in das Datenblatt mit
reinschreiben können (Oder hab ichs überlesen?).
Na ja, funzt jetzt jedenfalls.

Thx für den Tip
Gast
An was lags denn jetzt ?

Interrupts oder Ausgang nicht gesetzt ?

Wär schön wenn die Fragesteller bei Lösung des Problems das immer noch
posten würden, dann haben auch andere was davon...

MfG
Stefan
Gast
Also es lag bei mir daran, das ich die entsprechenden Pins nicht als
Ausgang deklariert habe. Ich dachte das würde der von alleine machen,
da man ja sonst recht wenig damit anfangen kann.

cu,
Frank
Gast
Ganz davon abgesehen:

  TCCR1A |= (1 << WGM11);

  TCCR1A |= (1 << COM1A0);

  TCCR1A |= (1 << COM1A1);

  TCCR1A |= (1 << COM1B0);

  TCCR1A |= (1 << COM1B1);

  TCCR1B |= (1 << WGM13);

  TCCR1B |= (1 << CS11);


7 SBI-Befehle, für die ein einziger OUT genügen würde:

  TCCR1B = _BV(WGM11)|_BV(WGM13)|
           _BV(COM1A0)|_BV(COM1A1)|
           _BV(COM1B0)|_BV(COM1B1)|
           _BV(CS11);

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.