www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega88 Timer1 PWM COM1A0 Problem Initialwert


Autor: Hans Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite zur Zeit an Code zu einer Ansteuerung einer 
Treiber-Schaltung. Dabei hängen an den beiden OC1A und OC1B ein Treiber 
bei dem je nach Typ kein, ein oder beide Eingänge invertiert sind.
Zur Ansteuerung verwendete ich den PWM Mode 8. Die Register sind so 
gesetzt:
TCNT1 = 0;
  // Duty-Cycle
  OCR1A = 0x10;
  OCR1B = 0x10;
  // Periodendauer
  ICR1 = 0xFF;
  // keine Ausgabe
  TCCR1A = 0;
  // Phase and Freq. Correct PWM, Prescaler = 1
  TCCR1B = (1 << WGM13) | (1 << CS10);
  TCCR1C = 0;

Das Problem ist, dass im Datenblatt steht, wenn COM1A0 oder COM1B0 
gesetzt ist (dies soll in einer boot-sequenz geschehen, die den 
treiber-typ erkennt), eigentlich der PORT normal funktionieren soll, 
aber er da nicht tut.
Was passiert ist, dass beim Debuggen der Port beim nachträglichen setzen 
des COM1A0 Bits invertiert wird. (Das erste was komsich ist)
Wenn das Programm läuft wird zwischendrin die Richtung umgeschalten 
(durch setzen und löschen der COM1x1 Bits).
  TCCR1A = (TCCR1A & ~(1 << COM1A1)) | (1 << COM1B1);
irgendwann gibt es aber einen Kurzschluß, weil der Timer nicht macht was 
er soll und der Port nicht den Wert vorgibt, sondern der Timer.

Ist das Problem bekannt?
Wie kann es umgangen (also der Initiale Wert festgelegt werden)?
Gibt es vllt. eine Lösung, die so funktioniert, wie das im Datenblatt 
steht?

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.