Hallo liebe Gemeinde, ich versuche gerade, die Ansteuerung für eine RGBW-Anwendung zu realisieren und habe nur folgende PINs meines µCs dafür zur Verfügung: // PD6/PIN12 > OC0A // PD5/PIN11 > OC0B // PB1/PIN15 > OC1A // PD3/PIN5 > OC2B Ich probiere nun schon seit einiger Zeit herum und hab die Registerbeschreibungen dazu jetzt schon unzählige Male durchgeackert, bekomme aber keine vier synchrone Ausgangssignale hin. Temporär sieht mein Code wie golgt aus:
1 | // Konfiguration der I/Os
|
2 | DDRB = 0xFF; |
3 | DDRD = 0xFF; |
4 | // Modi-Festlegung der Timer/Counter auf nicht-invertierte 10-Bit PWMs:
|
5 | // COMnxn = Ausgabeart des PWM-Signals(pro PWM-Kanal)
|
6 | // WGMnn = Pulsweiten-Modulatorbits, um den PWM-Modus zu aktivieren und einzustellen(pro Timer)
|
7 | TCCR0A = (1<<COM0A1) | (1<<COM0B1) | (1<<WGM01) | (1<<WGM00); |
8 | TCCR1A = (1<<COM1A1) | (1<<WGM12) | (1<<WGM11) | (1<<WGM10); |
9 | TCCR2A = (1<<COM2B1) | (1<<WGM22) | (1<<WGM21) | (1<<WGM20); |
10 | // Clock Select Bits(CSnx = Vorteiler):
|
11 | TCCR0B = (1<<CS02) | (1<<CS00); |
12 | TCCR1B = (1<<CS12) | (1<<CS10); // 1024 |
13 | TCCR2B = (1<<CS22) | (1<<CS21) | (1<<CS20); |
14 | // Festlegung der PWM-Startwerte:
|
15 | // OCRnx = Pulsbreite(pro PWM-Kanal)
|
16 | OCR0A = OCR0B = OCR2B = 200; |
17 | OCR1A = 512; |
Viele Grüße