Forum: Mikrocontroller und Digitale Elektronik PWM Timer Initialisierung?!


von Joachim (Gast)


Lesenswert?

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

von Sascha (Gast)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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 ;) ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.