- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: NXC: Problem mit const

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    35
    Beiträge
    122

    NXC: Problem mit const

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hi there,

    Ich versuche mit NXC (Abwandlung von C für den LEGO NXT) Servos anzusteuern.
    Dazu habe ich die kleine NXTServo V1.1 Platine von "Mindsensors" an dem NXT ran.

    Für die Ansteuerung der Servos gibts dann von Mindsensors eine kleine Bibliothek (NXTServo-lib.nxc).
    Das Problem ist aber: Bei jedem Programm dass ich damit schreibe kriege ich eine Fehlermeldung bezüchlich Konstanten.

    Ich habe dann ein bisschen debugging gespielt und heraus gefunden, dass der Compiler selbst im include-File einen Fehler erkennt, und zwar bei folgenden Zeilen.

    Code:
    const int NXTServo_VBatt        = 0x41;
    const int NXTServo_SPEED        = 0x52;
    Diese stehen zu Oberst im Programm und machen ja nichts "besonderes".

    Die Fehlermeldung sieht dann so aus:

    Code:
    [root@xps nxc_servo]# nbc NXTServo-lib.nxc 
    # Error: Invalid constant expression
    File "/home/orph/nxc_servo/NXTServo-lib.nxc" ; line 24
    #   
    #----------------------------------------------------------
    # Error: Invalid constant expression
    File "/home/orph/nxc_servo/NXTServo-lib.nxc" ; line 25
    #   
    #----------------------------------------------------------

    Hat jemand ne Idee?

    Danke!
    Anything that can go wrong, will go wrong. Kabel sind entweder zu lang oder zu kurz...

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Das scheint ein Bug von NXC zu sein, irgendein Problem mit Hex-Zahlen:

    http://forums.nxtasy.org/index.php?s...t=0#entry26437

    Entweder das "const" weglassen:

    int NXTServo_VBatt
    ...
    NXTServo_VBatt = 0x41;

    ..oder die Werte dezimal angeben:

    const int NXTServo_VBatt = 65;

    Oder, wie im Link empfohlen, updaten:

    http://bricxcc.sourceforge.net/test_release.zip

    Ich hoffe das stimmt so, ich habe kein NXT.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    35
    Beiträge
    122
    hi

    Danke! Das mit dem test_release hat funktionniert.

    gruss
    Anything that can go wrong, will go wrong. Kabel sind entweder zu lang oder zu kurz...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests