Hallo Zusammen,
Ich habe mit meinem at90usb1286 ein Problem. Wenn ich den Code unten auf
den Controller aufspiele, dann glimmt eine LED die an PD0 Angeschlossen
ist nur ganz leicht auf. Ich denke die bekommt Strom über einen internen
PullUp Widerstand. Wenn ich den Ausgang auf low setze passiert das
selbe. Kommentiere ich die PWM_Init Funktion aus, dann leuchtet die LED
ganz normal wie man es erwartet.
An PB7 kann ich mit ORC0A = ... die Intensität einer LED steuern.
Ich gebe zu, ich hab den Code für die Einstellungen des Timers blind aus
dem World Wide Web kopiert und (noch) nicht verstanden was da genau
passiert :-) Ich kann im Datenblatt aber auch keinen Hinweis finden.
Was mache ich falsch?
1 | int main (void){
|
2 |
|
3 | DDRD = 0xFF;
|
4 | DDRB = 0xFF;
|
5 |
|
6 | PORTD = 0x01;
|
7 | PWM_Init();
|
8 | OCR0A = 0x55;
|
9 | for(;;){
|
10 | }
|
11 |
|
12 |
|
13 | void PWM_Init(void)
|
14 | {
|
15 |
|
16 | TCCR0A=(1<<COM0A1)|(1<<COM0B1)|(1<<WGM01)|(1<<WGM00);
|
17 | TCCR0B=(1<<CS01)|(1<<CS00);
|
18 | return;
|
19 | }
|