Forum: Mikrocontroller und Digitale Elektronik MSP430: MSP430F2274 ADC10AE0 Compilerproblem


von mspgcc (Gast)


Lesenswert?

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.

von Maxx (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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?

von mspgcc (Gast)


Lesenswert?

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.

von Clemens L. (c_l)


Lesenswert?

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

von mspgcc (Gast)


Lesenswert?

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

von mspgcc (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.