mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430: MSP430F2274 ADC10AE0 Compilerproblem


Autor: mspgcc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Maxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
*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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: mspgcc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Clemens L. (c_l)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mspgcc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mspgcc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.