Hey!
Hab folgenden Programcode:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | int main(void){
|
5 | DDRB = DDRB | (1<<PB1);
|
6 |
|
7 | // Clear OC1A on Compare Match, set OC1A at Bottom
|
8 | TCCR1A = TCCR1A | (1<<COM1A1);
|
9 | // Fast PWM: TOP = OCR1A
|
10 | TCCR1A = TCCR1A | (1<<WGM10) | (1<<WGM11);
|
11 | TCCR1B = TCCR1B | (1<<WGM12) | (1<<WGM13);
|
12 | // selected clock: prescaler 1024
|
13 | TCCR1B = TCCR1B | (1<<CS12) | (1<<CS10);
|
14 | // Set TOP = OCR1A
|
15 | OCR1A = 0x0000; //0xFFFF, 0x7FFF auch schon probiert --> immer das gleiche
|
16 | // Enable Timer/Counter1 Output Compare match interrupt
|
17 | TIMSK = TIMSK | (1<<OCIE1A);
|
18 |
|
19 | sei();
|
20 | while(1){}
|
21 | return 0;
|
22 | }
|
Möchte eine Led mithilfe von PWM dimmen... Erklärungen habe ich mithilfe
von Kommentaren eingefügt!
Wenn ich das Program laufen lasse leuchtet die LED immer gleich hell!
auch wenn ich in OCR1A 0x0000 schreibe, wonach die LED meiner meinung
nach überhaupt nicht leuchten dürfte!?
Die LED habe ich übrigens an die masse geschalten! dh. wenn 5V an PB1
anliegen muss die Led leuchten...
Ich hoffe ihr könnt mir helfen!
Danke