Hi,
Hab hier ein Problem:
Ich will den Timer1 meines Prozessors (ATmega48) anspringen lassen, nur passt dem GCC Assembler die Anweisung
nicht:
| Code : |
main.S:61: Error: number must be less than 64 |
|
Er akzeptiert für OUT nur I/O Register deren Addresse kleienr als 64 ist, d.h. ich kann das SREG grade noch mit OUT ansteuern, wenn ich folgendes schreibe:
Das SREG hat laut Datenblatt folgende Speicherzelle: 0x5F.
Also genau 0x3F (63), wenn man mit _SFR_IO_ADDR() die Adresse verschiebt (-0x20).
Soweit ich mich erinnern mag konnte ich in AVR-Studio problemlos
schreiben.
Jetzt müsste ich theoretisch den Umweg über STS machen:
| Code : |
sts TCCR1A, temp
sts SREG, temp |
|
Irgendwas stimmt da nicht! Hat jemand mit diesem Problem schonmal Bekanntschaft gemacht? Theoretisch müsste OUT doch alle Addressen von 0x00 bis 0xDF (Speicherzellen 0x20 bis 0xFF) akzeptieren, oder nicht?
Grüsse und schöne Weihnachten,
Fabian