Ich versuche seit Stunden 3 PWM-Kanäle an einem ATTiny45 zum Laufen zu
bringen, aber es funktioniert nichts. Das Ganze soll eine RGB-LED
ansteuern, der Schaltplan ist im Anhang. Das Programm was ich im Moment
habe soll erstmal nur einen Kanal, nämlich den roten, immer heller
werden lassen, bis die maximale Helligkeit erreicht ist, und danach
wieder von vorne anfangen. Die Tabelle mit den exponentiellen Werten ist
aus dem LED-Fade Artikel hier von der Seite.
Hier mein Code:
GTCCR=(1<<PWM1B)|(1<<COM1B1);//nicht invertierende PWM an OC1B
25
OCR1C=255;
26
OCR1B=0;//blauer Kanal, Pin OC1B
27
DDRB=(1<<PB0)|(1<<PB1)|(1<<PB4);//Pins OC0A, OC0B und OC1B =>Ausgänge, Rest Eingänge
28
29
//Hauptschleife
30
while(1)
31
{
32
OCR0A=pwmtable[r];
33
OCR0B=pwmtable[g];
34
OCR1B=pwmtable[b];
35
r=r+1;
36
if(r==32)r=0;
37
38
39
_delay_ms(20);
40
41
}
42
}
Weiß jemand, was ich da vergessen habe?
Vielen Dank im Voraus, Björn
PS: das Leerzeichen vor dem b als Index habe ich eingefügt, da die
Forensoftware sonst meint ich spamme.
Oh Entschuldingung...
Das ist das, was ich mir am wenigsten erklären kann: nur die Blaue LED
leuchtet, und das dauerhaft. Ich bin gerade auch schon in der FH
gewesen, um mit dem Oszilloskop nachzumessen: Da kommt gar nichts, nur
bei der blauen. Aber auch da ist nichts getaktet oder so.
LG, Björn
Das ist schonmal ein guter Tipp. Kommt vom Copy&paste, da ich noch nie
mit dem Programmspeicher in der Form gearbeitet habe.
Der Rest ist allerdings von mir ersonnen, und wahrscheinlich auch der
Grund, warum es nicht tut. Die Änderungen brachten jedenfalls keine
Verbesserung.
Wäre nett wenn ihr euch das nochmal anschauen könntet. kann ja
eigentlich nur an der Timer-Initialisierung liegen...
LG, Björn