Ich hab ein großes Problem: Nachdem ich ein wenig mit Soft-PWM
rumgespielt habe, funktionieren die einfachsten Sachen nicht mehr. Das
primitive Blink-Programm (das so auf dem selben uC mal tat) will einfach
nicht mehr.
Jeder Wert <= 13 funktioniert, dann leuchtet die LED halt mit halber
Helligkeit. Bei größeren Werten kommt er aber gar nicht mehr bis zum
Einschalten.
Der Code wird korrekt zum uC übertragen, ich kann ihn von dort wieder
auslesen, das kann also nicht der Fehler sein.
OK, dann mal die Fakten: Ich hab hier einen ATmega8, die Fuses sind in
der Standardeinstellung (ich hatte den Takt mal falsch gesetzt, da hat
sogar der Timer gesponnen, aber jetzt sind sie wieder auf 0xC1 0x99).
Compiler ist avr-gcc 4.1.3 20080612 bzw. WinAVR-20081205 (mit beiden
getestet, gleiches Problem). Optimierung ist -Os, F_CPU ist auch richtig
gesetzt.
Ich hab das Programm mit 13 und 14 kompiliert und dissassembliert, sieht
alles OK aus, der einzige Unterschied ist die
Warteschleifeninitialisierung:
1 | _delay_ms(13):
|
2 | 62: e2 eb ldi r30, 0xB2 ; 178
|
3 | 64: fc e0 ldi r31, 0x0C ; 12
|
4 |
|
5 | _delay_ms(14):
|
6 | 62: ec ea ldi r30, 0xAC ; 172
|
7 | 64: fd e0 ldi r31, 0x0D ; 13
|
Ich hoffe, mir kann hier jemand helfen!
Ansonsten: Frohe Weihnachten!