Forum: Mikrocontroller und Digitale Elektronik ATTiny 85 3xPWM für RGB LED Kopfschmerzen


von Thomas B. (tebee)


Lesenswert?

Moinmoin,

ich möchte den ATTiny85 zum ansteuern von drei RGB LEDs nutzen, weil 
dieser so schön klein ist und das meiner Meinung nach funktionieren 
sollte. Über einen Taster inkrementiere ich einen Zähler und über einen 
weiteren Taster kann ich den Vergleichswert (OCR0A, OCR0B oder OCR1B) 
hochzählen/runterzählen. Je nachdem wie der genannte Zähler steht wird 
einer der Werte geändert. Timer 0 funktioniert. Will ich den Timer 1 
nutzen, passiert nur noch Kokolores. Der rote Farbanteil hellt langsam 
auf dann springt er plötzlich wild umher. Kann es sein, dass der 
ATTiny85 für diese Aufgabe nicht geeignet ist? Beeinflussen sich die 
Timer evtl. irgendwie. Ich hab das Datenblatt so oft gelesen und auch 
hier im Forum geschaut, aber ähnliche Probleme nicht gefunden. Hier die 
Initialisierung:
DDRB = b00110011;
//PORTB=(1<<PB4);

  //PWM 1 und 2 (Timer0)
  TCCR0A = (1<<WGM00) | (1<<COM0A0) | (1<<COM0A1) | (1 << COM0B0) | (1 
<< COM0B1);

  TCCR0B = (1<<CS01) | (1<<CS00); //Frequenz: CK / 1

  //PWM 3 (Timer1)
  TCCR1 = (1 << CS12) | (1 << CS11);//| (1 << CS10);//| (1 << CTC1);
  GTCCR = (1 << PWM1B) | (1 << COM1B1);


  //Timer0
  OCR0A = 0;//Grün
  OCR0B = 0;//Blau
  //Timer1
  OCR1B = 254;//Rot
  OCR1C = 255;//Maximalwert des Zählers für Rot

ist es irgendjemandem möglich mir zu helfen?
Gruß,
Tebee

von Florian (Gast)


Lesenswert?

Hallo Tebee,

Hier mal ein paar Ideen:
im Datenblatt steht etwas von einem ATtiny15 Mode(Seite 98). Dort müssen 
die Fuses entsprechend gesetzt sein. Ev. musst Du diesen Mode 
deaktivieren oder aktivieren?

Meiner Meinung nach müsste die Init. so sein:(Die Pins sind nicht der 
Reihe nach angeordnet)
//PB0=Out,PB1=Out,PB2=in,PB3=Out,PB4=Out,PB5=In,
DDRB = b00011011;

Bist Du sicher, dass man 3 PWM Ausgänge gleichzeitig nutzen kann? Für 
mich sieht es auf den ersten Blick fast so aus, als ob die Pins doppelt 
belegt sind und nicht alle gleichzeitig nutzbar sind. Ev. muss das noch 
konfiguriert werden?

PB0 (OC0A/(invertiert)OC1A)
PB1 (OC0B/OC1A)
PB3 invertiert(OC1B)
PB4 (OC1B)

Gruß
Florian

von Thomas B. (tebee)


Lesenswert?

Danke Florian,

also mit dem 8515 und 2313 klappt es ganz wunderbar. Ich glaube es sind 
auch nur 2PWM fehlerfrei und gleichzeitig möglich.

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.