PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RGB LED PWM mit Timer2



mameise
09.02.2011, 20:33
Hallo,

ich hab leider ein Problem:
Ich hab mir ne RGB LED geholt die 6 Pins hat. 2xblau, 1xrot und 1xgrün.
Ich habe rot und grün am timer1 hängen und die 2 blauen an Timer2 geschaltet, also PB1-3 belegt. Jeweils mit passenden Widerständen.
Nun zum Problem:
Ich kann dem Timer1 ohne Probleme ansteuern, also einen Wert eingeben
und die Farbe leuchtet entsprechend. Leider scheint bei Timer2 irgendwo ein Fehler zu sein, denn wenn ich die Farbe einschalten möchte, und die anderen sollten aus sein, leuchten immer alle Farben. Die blaue Farbe kann ich zwar meiner Meinung nach dimmen, aber die anderen gehen nicht aus...
Woran könnte das denn liegen? Such mir schon nen Wolf aber scheinbar hat keiner dieses spezielle Problem.
Was ich beobachten kann: Wenn ich den Chip beschreibe, ist an PB3 ja auch ein Kabel vom Programmer dran, währen er programmiert, leuchten die 2 blauen allein, nur dann eben über das Programm stimmt die Steuerung wohl nicht...
Programm ist:


$regfile = "M8def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 2400

Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
Config Timer2 = Pwm , Prescale = 32 , Compare Pwm = Clear Up , Pwm = On

'Die Timer freigeben
Enable Timer1
Enable Timer2

'Die Timer starten
Start Timer1
Start Timer2

'PWM auf 0 setzen

Pwm1a = 0 'PWM1 Grün
Pwm1b = 0 'PWM2 Rot
Ocr2 = 0 'PWM3 Blau


Do
Pwm1a = 0
Pwm1b = 0
Ocr2 = 50
Loop

End

Bin über jede Hilfe oder jeden Tip dankbar. Ich verzweifle :D
Gruss

Rone
09.02.2011, 23:21
Hallo!

Das Enable / Start brauchts nicht.
Prescale 32 gibts nicht.

MfG
Rone

mameise
09.02.2011, 23:51
Hi Rone,

hehe :) Danke. Mittlerweile bin ich nen Schritt weiter. Prescale hab ich wieder anders eingestellt, die 2 blauen Pins an PB1 und den roten an PB3. Jetzt gehts scheinbar soweit, auch wenn mir nicht klar ist, warum, obwohl ich bei allen Clear Up habe, die Farben an PB1 und PB2 bei 0 leuchten und bei 255 nicht, und an PB3 die Farbe leuchtet genau andersrum... Ich hab für Timer2 nun Clear Down genommen und jetzt sind alle gleich.

Aber ich denke es gibt noch ein weiteres Problem, bzw. gehts ja, aber wie lang halt. Ich weis nicht ob die die blauen Pins richtig angeschlossen habe. Wenn ich, in meiner "Anfängerunwissenheit" das richtig verstanden habe, braucht die LED 20mA. Zählt das nun pro Farbe oder gesamt? Wenns pro Farbe wäre, dann hätte ich an PB1 ja 40mA dran, oder nicht? Sind ja 2xblau. Jeweis mit einem Vorwiderstand an PB1 geführt. Ist das so ok, oder muss das anders machen? Widerstand ist für blau, da 3,3V, für 5V VCC 100 Ohm. Und das halt pro blauem Pin.

Noch was: Ich hab natürlich ne klare LED genommen, weil ich das ja sehen wollte, aber jetzt sieht man jede Farbe einzeln, und nur teilweise wirkt es wie die gewünschte gemischte Farbe. Ist ja an sich irgendwo schon klar, aber bekomm ich das in den Griff? Also entweder durch andere Einstellung/Schaltung oder durch eine Art "Aufsatz" den ich mir basteln kann, das man nur die gemischte Farbe sieht?

Gruss