Ok, ich habe den Fehler zwar nicht gefunden, dafür kann ich ihn umgehen.
Mein Prog sieht gleich aus, nur dass ich an stelle von
schreibe ich nun
1 | asm volatile ("ldi r24, 0x81");
|
2 | asm volatile ("out 0x3C, r24");
|
Damit tut es.
Wenn ich mir die *.lss angesehen habe steht da
OCR0 = 0x81;
ca: 81 e8 ldi r24, 0x81 ; 129
cc: 81 bf out 0x31, r24
Der Unterschied steht in der letzten Zeile. Der Compiler schreibt für
die OCR0-Adresse 0x31. In der Doku und im AVR-Studio steht aber als
Adresse 0x3C.
Ich schreibe also, wenn ich das richtig verstehe, an die falsche
Speicheradresse.
Verwenden tue ich AVRstudio 4.13 SP2 build 571 und WinAVR 20060421. Ich
weiss, dass die WinAVR alt ist, jedoch funktioniert mit den aktuellen
der Debug-Modus mit dem JTAGICE mkII nicht. Entweder fällt er mit Fehler
aus (WinAVR 20071221) oder der Debug-Modus startet gar nicht
(WinAVR20080512).
Vielleicht habe ich da aber auch ein Einstellungsfehler.