PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei 'IF' Befehl



maxiaojie
26.01.2005, 18:59
hallo,
ich habe fogendes programmiert, und wollte den Roboter sich drehen und fahren, je nach der Eingangsspannung bei ad5(ehemaliger Touchsensor, ich habes ausgeschaltet) und ad8, aber es gibt immer ein Problem, dass es nach IF ein ')' erwartet wird.
Habe ich falsch programmiert?

define Y ad[8]
define X ad[5]
define Z byte[8]

X=Z

#loop
pause 5:SYS COMNAV_STATUS
if (Z>5 and Z<10) then gosub left
if (Z<5 and Z>0) then gosub right
SYS FWDR:SYS FWDL:SPEED_L=Y:SPEED_R=Y:goto loop

#right
SYS FWDR:SYS FWDL:SPEED_L=Y+10*Z:SPEED_R=Y-10*Z:return
#left
SYS FWDR:SYS FWDL:SPEED_L=Y-10*Z:SPEED_R=Y+10*Z:return

Dirk
26.01.2005, 19:38
Hallo maxiaojie,

Dein Code läßt sich bei mir ohne Fehlermeldung compilieren.

Gruß Dirk

GaronG
29.01.2005, 08:14
Hallo maxiaojie,

1. wie lautet denn genau die Fehlermeldung des Compilers?
2. ich nehme an, dass das gezeigte Programm nur ein Teilstück ist. Kann die Fehlermeldung ein Folgefehler aus einem anderen Programmteil sein?

MfG
GaronG

maxiaojie
31.01.2005, 10:04
hi, ich weiß jetzt wahrscheinlich, woran das problem liegt.
bei mir im programm steht statt 'if (Z>5 and Z<10) then gosub left '
'if (Z>5.5 and Z<10) then gosub left '
die zahl nach dem punkt wird vom complier vielleicht gar nicht erkannt, weil ich Z als byte definiert habe. kann das sein?
wie kann ich jetzt Z definieren, damit die zahlen nach dem punkt erkannt wird?

GaronG
31.01.2005, 15:46
Hallo,

Z ist definiert als 'byte', d.h. eine ganze Zahl zwischen 0 und 255. Dezimalzahlen können nicht definiert werden.

MfG
GaronG