Atmega88 Timer1 PWM COM1A0 Problem Initialwert

Gast #1365328
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:
1
TCNT1 = 0;
2
  // Duty-Cycle
3
  OCR1A = 0x10;
4
  OCR1B = 0x10;
5
  // Periodendauer
6
  ICR1 = 0xFF;
7
  // keine Ausgabe
8
  TCCR1A = 0;
9
  // Phase and Freq. Correct PWM, Prescaler = 1
10
  TCCR1B = (1 << WGM13) | (1 << CS10);
11
  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).
1
  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

Eine eigene Frage? Dieser Thread ist über 17 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.