www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM mit Atmega32


Autor: JohnyP (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich hoffe jemand kann mir beim konfigurieren einer PWM helfen. 
Ich habe es mit dem Datenblatt des ATmega32 und mit dem PWM Tutorial 
hier auf dieser Seite probiert. Ohne erfolg!
Meine anforderung: ich möchte einen HI Puls von 16 Taktlängen gefolgt 
von einem LOW von 404 Taktlängen.
Laut Datenblat überhaupt kein problem:
Seite 114 Tabelle 16-5 Modus 14
WGM13 = 1, WGM12 = 1, WGM11 = 1, WGM10 = 0.
Fast PWM. Zähler soll angeblich bis ICR1 zählen (siehe Seite 105 Figur 
16-7) und dann zurückgesetzt werden.
Dann: (Seite 113 Tabelle 16-3)
COM1A1 = 1, COM1A0 = 0.
OC1A löschen bei Timer gleich vergleichswert und setzen bei 0.
nurnoch ICR1 auf 420 setzen und OCR1A auf 16.
Und so komme ich zu folgendem Sourcecode:

#include<io.h>
int main(void) {
  TCCR1A = 1<<COM1A1 | 1<<WGM11;
  TCCR1B = 1<<WGM13 | 1<<WGM12 | 1<<CS10;
  ICR1 = 420;
  OCR1A = 16;
  DDRD = 0;
  while(1){}
  return 0;
}

Tja! Aber denkste!
Machen tut er was anderes. Ein Tracen mit F10 ergab:

Er Zählt von 0 bis 1FF und dann wider zurück von 1FF bis 0.
Beim runterzählen und erreichen von 16 wird der Ausgang gesetzt und beim 
Hochzählen bei 16 rückgesetzt.

Das entspräche ja dem Phasen und Frequenz korecktem PWM modus und zählen 
bis top = 1FF. Herlich diesen modus gibt es in der Tabelle 16-5 seite 
114.
Wie dem auch sei, ich habe natürlich schon einiges an konfigurationen 
durchprobiert. Das was ich dabe NIEMALS hinbekommen habe ist, dass der 
Zähler bis ICR1 gezählt hat! er hat immer nur bis FF oder 1FF oder 3FF 
gezählt, aber niemals bis zu einem Registzervergleichswert!

Hat jemand ne idee?

Autor: JohnyP (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry!

Das entspräche ja dem Phasen und Frequenz korecktem PWM modus und zählen
bis top = 1FF. Herlich diesen modus gibt es GARNICHT in der Tabelle 16-5 
seite114.

...solte es heißen

Autor: JohnyP (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.