Hallo Allerseits Nach Langem habe ich nun endlich wieder einmal Zeit gefunden um mich mit meinem AVR zu beschäftigen und somit auch wiedereinmal dieses tolle Forum zu nutzen! :-) Ich habe ein C-Projekt und nutze AVR-GCC. Da die Interruptroutine in C zu lange dauerte. Schreibe ich sie nun in Assembler, in einem separaten *.S-File. Das hat eignetlich alles gut geklappt, jedoch bin ich auf ein kleines Problem gestossen: Mit folgendem Code lade ich eine Variable (Pointer auf ein Array), was natürlich auch funktioniert: LDI r31, hi8(RDSEnc_pcBiphaseOutputSignalNext) LDI r30, lo8(RDSEnc_pcBiphaseOutputSignalNext) Dieser Pointer (also hier in Assembler das Z-Register) wird dann genutzt um etwas auszulesen und wird inkrementiert. Der neue Wert (alter Wert + 1) will ich dann natürlich wieder zurück in den Speicher der C-Variable schreiben... STS hi8(RDSEnc_pcBiphaseOutputSignal), r31 STS lo8(RDSEnc_pcBiphaseOutputSignal), r30 ..., was zu meiner Verwunderung nicht funktioniert hatte, und mir diese Fehlermeldung ausgespuckt hatte: ==================================================== ../../RDSInt.S: Assembler messages: ../../RDSInt.S:56: Error: `,' required ../../RDSInt.S:56: Error: register name or number from 0 to 31 required ../../RDSInt.S:56: Error: garbage at end of line ==================================================== Als ich dann das Ganze nach langem herumsurfen auf diese Art probiert habe... STS RDSEnc_pcBiphaseOutputSignal+1, r31 STS RDSEnc_pcBiphaseOutputSignal, r30 ..., hat's natürlich geklappt. Jetzt zu meiner eigentlichen Frage: Wieso funktioniert Variante 1 nicht, und Variante 2 schon? Gibt's dafür eine Erklärung oder ist das einfach "ist so weil ist so!"? Danke für eure Hilfe Fab
hallo zusammen man merkt wirklich dass ich schon lange nicht mehr mit meinem AVR gespielt habe. VERGESST ALLES WAS ICH GEFRAGT HABE!!! eigentlich müsste man dieses post löschen, ist ja peinlich :-(
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.