Hallo, hat jemand eine Idee warum es bei mir beim MSPGCC Compiler bei z.B. ADC10AE0 = 0x10 die Fehlermeldung "lvalue required as left operand of assignment" gibt? Code wird für MSP430F2274 erzeugt. Die passende Includedatei wird eingebunden und dort steht #define ADC10AE0_ 0x004A /* ADC10 Analog Enable 0 */ sfrb(ADC10AE0, ADC10AE0_); Habe keine Idee was ich falsch machen könnte. Danke für jeden sinnvollen Hinweis.
Die Lösung steht in der Definition des Makros sfrb. Vermutlich steckt dort ein Cast in einen Zeiger. Dann würde die Lösung für dein Problem lauten
1 | *ADC10AE0 = 0x10 |
Die Ursache der Fehlermeldung ist, dass du versuchst einem unveränderlichen Ausdruck einen Wert zuzuweisen. Nur sogenannten lvalues kann man neue Werte zuweisen (daher Name lvalue - "linker Wert"). das kann z.B. eine Variable oder eine Speicheradresse sein, auf die gezeigt wird.
Da stimmt was nicht. Die Register sind in den MSP430-Headerdateien üblicherweise so deklariert, daß direkte Zuweisungen möglich sind. Zeig' mehr von Deinem Code. Exakt welche Headerdatei bindest Du ein?
Hi, na ja , ich bin schon so weit , dass ich eines der TI ADC Examples (msp430x22x4_adc10_10.c) testhalber mit einbinde. Also das void Test(void) { ADC10CTL1 = INCH_2 + CONSEQ_1; // A2/A1/A0, single sequence ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; ADC10DTC1 = 0x03; // 3 conversions ADC10AE0 |= 0x07; // P2.2,1,0 ADC10 option select P1DIR |= 0x01; // Set P1.0 output } Die Include Datei ist: #include <msp430f2274.h> also aus C:\MSP430GCC\msp430-toolchain-win-x86-3.0\msp430\include Auch hier tritt der Fehler auf. Alles andere das die Include Datei braucht funktioniert.
mspgcc schrieb: > C:\MSP430GCC\msp430-toolchain-win-x86-3.0 Die aktuelle Version wäre 4.1: http://www.ti.com/tool/msp430-gcc-opensource
Clemens L. schrieb: > Die aktuelle Version wäre 4.1: Ich benutze das XPG Plugin für ECLIPSE (momentan NEON), das wird nicht mehr weiter gepflegt. Würde gerne die neuere Version von MSPGCC mal versuchen. Nun habe ich das Problem, dass über das XPG plugin die neuere TI MSPGCC Version nicht einbindbar ist. Was muss ich den bitte tun, damit das funktioniert ? Danke
Das Problem mit ADC10AE0 hat sich aufgelöst. Es war eine zweite include Anweisung vorhanden, die nicht zum MSP430F2274 gepasst hat. War versteckt in einer andern Include Datei und nicht auf den ersten Blick zu erkennen. Nur falls es jemanden interessiert.
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.