Leider noch nicht so ganz. PWM an OC4B fuktioniert nun super,
nur leider die grüne und rote LED nicht mehr.
Kann langsam auch kaum noch erkennen was ich da eigentlich tippe. Aber
vielleicht könnte nochmal jemand raufschauen was ich da jetzt versaut
habe.
1 | /////////////////PWM LEDs/////////////////
|
2 |
|
3 | PORTB |= (1<<7);
|
4 |
|
5 | // PWM für rote LED an PB6 (OC3A)
|
6 |
|
7 | TCCR3A |= (1<<COM3A1);
|
8 | TCCR3A |= (1<<WGM31) | (1<<WGM30);
|
9 |
|
10 | TCCR3B |= (1<<WGM33) | (1<<WGM32) | (1<<CS30);
|
11 |
|
12 | OCR3A = 1000;
|
13 | OCR3B = 0;
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | // PWM für grüne LED an PD5 (OC1A)
|
20 |
|
21 | TCCR1A |= (1<<COM1A1);
|
22 | TCCR1A |= (1<<WGM11) | (1<<WGM10);
|
23 |
|
24 | TCCR1B |= (1<<WGM13) | (1<<WGM12) | (1<<CS10);
|
25 |
|
26 | OCR1A = 1000;
|
27 | OCR1B = 0;
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | // PWM für blaue LED an PB7 (OC4B)
|
33 | TCCR4A |= (1<<COM4B1);
|
34 | TCCR4A |= (1<<WGM41) | (1<<WGM40);
|
35 |
|
36 | TCCR4B |= (1<<WGM43) | (1<<WGM42) | (1<<CS40);
|
37 |
|
38 | OCR4A = 1000;
|
39 | OCR4B = 0;
|
40 |
|
41 |
|
42 | /////////////////////////////////////////////
|
In der while wird testweise folgendes ausgeführt:
1 | OCR1B++; //grüne LED
|
2 | OCR3B++; //rote LED;
|
3 | OCR4B++; //blaue LED
|
4 | _delay_ms(10);
|
... das "Aufdimmen" klappt jetzt leider nur noch bei der blauen LED.