Hallo, ich habe bei PD5 eines ATmega328p eine LED hängen, die ich gerne
über FastPWM dimmen möchte. (
Mein Problem ist folgendes: Die LED leuchtet die ganze Zeit, und scheint
nicht mal beeindruckt von dem Wert, den ich ins OCR0B-Register schreibe,
der ja ständig mit dem aktuellen Timerwert kontrolliert wird, und bei
einem match den Ausgang der LED auf Low schalten sollte, zu sein.
Hier mal mein Code:
1 | #include <avr/io.h>
|
2 |
|
3 | void init_timer0(void);
|
4 |
|
5 |
|
6 | int main(void)
|
7 | {
|
8 |
|
9 | DDRD |= (1<<PIND5);
|
10 |
|
11 | init_timer0();
|
12 | OCR0B = 100; //Dieser Compare-Wert lässt meine PWM völlig kalt
|
13 |
|
14 |
|
15 | while (1);
|
16 | }
|
17 |
|
18 |
|
19 | void init_timer0(void)
|
20 | {
|
21 | TCCR0A |= /*(1<<COM0B0) |*/ (1<<COM0B1) | (1<<WGM00) | (1<<WGM01);
|
22 | TCCR0B |= (1<<WGM02) | (1<<CS02) | (1<<CS00); //Prescaller von 1024
|
23 | }
|