PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NXC: Problem mit const



orph
03.04.2009, 00:41
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.


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:


[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!

radbruch
03.04.2009, 05:59
Hallo

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

http://forums.nxtasy.org/index.php?showtopic=3437&pid=26437&mode=threaded&start=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

orph
04.04.2009, 23:12
hi

Danke! Das mit dem test_release hat funktionniert.

gruss