PWM Timer Initialisierung?!

Gast #1033171
Hallo verehrtes Forum!

Ich bin im Moment dabei mir ein "Moodlight" mit drei 1W-Leds zu bauen. 
Das ganze soll dann mit einem ATmega8 per drei-kanaliger Hardware-PWM 
angesteuert werden.
Nun verschohne ich euch mit Schaltplänen und seitenweise Sourcecode. Ich 
beschreib mal mein Problem:
die beiden LEDs, die an PB1 und PB2 hängen dimmen wunderbar auf und ab. 
So, wies im Code steht. Nur die LED an PB3 macht das nicht. Sie macht 
gar nichts! Kaputt ist sie allerdings nicht. Denn wenn ich den Pin 
"manuell" mit PORTB |= (1<<PB3) schalte leuchtet sie einwandfrei. Mein 
Verdacht war jett, daß da was mit dem SPI nicht stimmt. Aber damit mach 
ich eigentlich nichts...

HIer mal der Code zur Timer-Initialisierung:

void timer_init()
{

// TIMER_1 INITIALISIERUNG
  // Clear OC1A on Compare Match when up-counting.
  // Set OC1A on Compare Match when down-counting.
  TCCR1A |= (1<<COM1A1);

  // Clear OC1B on Compare Match when up-counting.
  // Set OC1B on Compare Match when down-counting.
  TCCR1A |= (1<<COM1B1);

  // PWM, Phase-Correct, TOP = 0xFF
  TCCR1A |= (1<<WGM10);

// TIMER 2 INITIALISIERUNG
  // Clear OC2A on Compare Match when up-counting.
  // Set OC2A on Compare Match when down-counting.
  TCCR2 |= (1<<COM21);

  // PWM, Phase-Correct, TOP = 0xFF
  TCCR2 |= (1<<WGM20);

// Prescaler einstellen, Timer(1+2) starten
  TCCR1B = (1<<CS10);
  TCCR2 = (1<<CS20);
}
//###############################

Wie gesagt, die beiden LEDs an PB1 und PB2 laufen. Und die 
Treibertransistoren sind auch ok. Hab ihren Schaltstrom mit 24mA 
gemessen. Das ist ja sowohl für den Pin als auch für den Transistor im 
grünen Bereich. Wäre echt toll, wenn einer ne Idee hätte und die kurz 
posten könnte...

Danke,
vG,
Joachim
Gast #1033378
Hallo,

schau mal in deine letzte Programmzeile ...
>TCCR2 = (1<<CS20)

damit löschst du das weiter oben gesetzte COM21 & WGM20 -Bit im selben 
Register wieder !

Sascha
Gast #1033921
Hi Sascha!

Vielen Dank! Meine Güte, wie konnte ich das übersehen... Sowas passiert 
mir dauernd. Da bin ich am knobeln wie ein blöder und dann ist es so ein 
Kinderkram...

Danke nochmal. Vielleicht sollte ich das Schnitzen anfangen. Genug 
Bretter liegen hier ja jetzt rum ;) ...

Antwort schreiben

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