Gast
#77423
Hallo, weiß jemand, wie man Daten von einem C-Programm mit dem inline-Assemblercode austauscht? Ich hatte im Tutorial von Christian Schifferle erfreut gelesen, wie einfach das ist. Aber pustekuchen, es funktioniert nicht. Am liebsten wäre mir x = inp (0x1B); Da mault der avr-gcc-Compiler: invalid lvalue in unary &. (Was das wohl soll?) Hingegen wird x = inp (PORTA); nicht beanstandet, obwohl PORTA = 0x1B. Aber PORTA wollte ich gar nicht, ich wollte von beliebigen Speicherstellen, die per Assembler beschrieben sind, im C-Programm lesen (und schreiben). Es geht auch nicht, wenn ich in die avr/iom16.h hineinschmuggle #include AAA = r16 oder eine normale Adresse. Bei x = inp (AAA); kommt die Fehlermeldung r16 undeklariert. Das gleiche lese ich, wenn ich aus Chr. Schifferles Tutorial abschreibe: x = inp (USR); -- undeklariert. IOm16.h ist nicht direkt, sondern über io.h eingebunden und der Compiler verwendet die Datei auch, wie die Fehlermeldung zeigt. Was mache ich denn da falsch?