Hallo allerseits! Ich habe folgende Zeile in meinem avr-gcc Assembler file (*.S) meines C-gemixt-mit-Assembler-Projekts geschrieben: LDI r30, hi8(RDSEnc_Biphase.cCurrentGroup) Das hat jedoch nicht funktioniert, und so ist mir aufgefallen, dass ich zwischen den Klammern von hi8() oder lo8() keine Variable aus einem struct nehmen kann, da ich ansonsten einen Fehler kriege. Ist das ein bekanntes Problem? Habe ich irgend etwas übersehen? Oder gibt's da eine andere Lösung? Merci für deine Hilfe Fab
Hi Fab, hi8() und lo8() sind avrggc spezifische assembler-operatoren. Diese liefern die oberen bzw. unteren 8 Bit eines 16Bit-Wertes. Nachdem du deiner Variable 'cCurrentGroup' das Prefix 'c' verpasst hasst, geh ich mal davon aus das sie vom Datentyp char sind. Dann ist die Fehlermeldung berechtigt. Du solltest halt mal ein wenig mehr von deinem Code zeigen. Hilft so manchmal beim Helfen.
Hallo! Ja das leuchtet mir eigentlich soweit ein. Richtig bei "cCurrentGroup" handelt es sich um einen char, jedoch habe ich diesen Namen nur als Platzhalter genommen. Bei dem eigentlichen Situation war die Variable ein Pointer "unsigned char *pcBlaBlaBla" (die ja 16bit hat!). Was noch dazu kam, im struct hat es nicht funktioniert und als ich der gleiche Typ von Variable dann separat (nicht in einem struct) deklariert und verwendet hatte, hat's funktioniert!
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.