HF SHOOTER
26.12.2007, 13:08
Hallo AVR-Experten,
ich bin dabei mir ein Stimmungslicht zu bauen, dafür sehe ich eine 3W RGB-Led vor. um die verschiedenen Farbmischungen hinzubekommen benötige ich eine PWM erzeugung.
Nun da ich soweiso den ATmega8 nehme wollte und dieser laut Datenblatt auch 3 Kanäle beherscht habe ich mich für diesen entschieden.
Das hier ist erst mein 2. Projekt und ich muss mir die ganzen Fähigkeiten selber aneigenen. Habe also schon viel im Forum gelesen und auch auf diversen anderen Seiten.
Ich brauche eine PWM mit 3 Kanälen, das ganze sollte so schnell ablaufen das man auch die Helligkeit in vielen Stufen (ich sag mal >=100) einstellen kann um später auch sanfte Übergänge zu erzeigen.
Ich hatte eigentlich das ganze schon mit einer simplen Soft-PWM realisiert, dennoch wenn ich die nötige Daten für den anstehenden Wechsel der Farbe berechne flackert bzw. blitzen die LEDs auf also muss ne Hardware PMW her.
Das ganze ist im Datenblatt recht kompliziert angegeben, habe dieses Kapital auch schon 2 mal gelesen aber ich will es einfach nicht kapieren. :-k
Herausgefunden habe ich bisher:
- Es ist Möglich eine feste Frequen, die bei allen 3 Kanälen gleich ist zu erzeugen und nur den Duty-Cycle zu ändern (genau sowas brauch ich!)
- Es können nur die Pins PB1 - PB3 verwedet werden.
- Timer 1 wird dafür benötigt (kein Problem hab ich noch frei)
Was muss in die ISR vom Timer1?
Wie änder ich den Duty-Cycle? Einfach die Register OC1A, OC1B und OC2 mit einem Wert zwischen 0...255 beschreiben?
16bit ist hier nicht möglich, da es nur geht wenn OC1A + OC1B zusammen sind.
Also wie man unscher erkennen kann bin ich noch sehr unerfahren hier. Würde mich um ein paar Denkanstöße freuen oder falls jemand ein Projekt hat, indem er auch 3 Kanäle mit Hardware PMW macht, und mir den entsprechenden Teil vom Source herauskopieren könnte wäre das auch ein großer Schritt für mich.
Zusammengefasst möchte ich eine PWM erzeugen, mit veränderbarem Duty-Cycle und einer festen Frequenz. Das ganze sollte noch relativ fein einstellbar sein, um eben weice Übergänge zu schaffen.
Btw: Ist es möglich den Duty-Cycle nur von 0...100 in 1% Schritten einzustellen oder ist es bei entsprechenden Takt auch möglich z.b. 0,5% Schritte zu machen?
Danke im Voraus.
mfg
Benny
ich bin dabei mir ein Stimmungslicht zu bauen, dafür sehe ich eine 3W RGB-Led vor. um die verschiedenen Farbmischungen hinzubekommen benötige ich eine PWM erzeugung.
Nun da ich soweiso den ATmega8 nehme wollte und dieser laut Datenblatt auch 3 Kanäle beherscht habe ich mich für diesen entschieden.
Das hier ist erst mein 2. Projekt und ich muss mir die ganzen Fähigkeiten selber aneigenen. Habe also schon viel im Forum gelesen und auch auf diversen anderen Seiten.
Ich brauche eine PWM mit 3 Kanälen, das ganze sollte so schnell ablaufen das man auch die Helligkeit in vielen Stufen (ich sag mal >=100) einstellen kann um später auch sanfte Übergänge zu erzeigen.
Ich hatte eigentlich das ganze schon mit einer simplen Soft-PWM realisiert, dennoch wenn ich die nötige Daten für den anstehenden Wechsel der Farbe berechne flackert bzw. blitzen die LEDs auf also muss ne Hardware PMW her.
Das ganze ist im Datenblatt recht kompliziert angegeben, habe dieses Kapital auch schon 2 mal gelesen aber ich will es einfach nicht kapieren. :-k
Herausgefunden habe ich bisher:
- Es ist Möglich eine feste Frequen, die bei allen 3 Kanälen gleich ist zu erzeugen und nur den Duty-Cycle zu ändern (genau sowas brauch ich!)
- Es können nur die Pins PB1 - PB3 verwedet werden.
- Timer 1 wird dafür benötigt (kein Problem hab ich noch frei)
Was muss in die ISR vom Timer1?
Wie änder ich den Duty-Cycle? Einfach die Register OC1A, OC1B und OC2 mit einem Wert zwischen 0...255 beschreiben?
16bit ist hier nicht möglich, da es nur geht wenn OC1A + OC1B zusammen sind.
Also wie man unscher erkennen kann bin ich noch sehr unerfahren hier. Würde mich um ein paar Denkanstöße freuen oder falls jemand ein Projekt hat, indem er auch 3 Kanäle mit Hardware PMW macht, und mir den entsprechenden Teil vom Source herauskopieren könnte wäre das auch ein großer Schritt für mich.
Zusammengefasst möchte ich eine PWM erzeugen, mit veränderbarem Duty-Cycle und einer festen Frequenz. Das ganze sollte noch relativ fein einstellbar sein, um eben weice Übergänge zu schaffen.
Btw: Ist es möglich den Duty-Cycle nur von 0...100 in 1% Schritten einzustellen oder ist es bei entsprechenden Takt auch möglich z.b. 0,5% Schritte zu machen?
Danke im Voraus.
mfg
Benny