PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ELSEIF als Fehler oder bessere Lösung



alecs
07.11.2005, 14:19
Hallo ihr lieben Leut,

ich hab ein kleines Problem mit dem ELSEIF, in der Doku zu BASCOM ist dies enthalten und ich bin davon ausgegangen das dies auch unterstützt wird, jedoch werden mir die betreffenden Zeilen als Fehler angezeigt, mit der Meldung "THEN expected.
Ich habe gleich mal den betreffenden Code mitgepostet, vielleicht hat auch jemand eine bessere Lösung für mein Problem (ohne ELSEIF).

Der Sinn des Programms soll es sein, die Motoren vorwärts laufen zu lassen bis die gewünschte entfernung erreicht bzw rückwärts wenn diese überschritten ist und die Motoren wieder abzuschalten.

Danke




Do
Print "this is an test for interrupts I (left) = " ; Counter_left_tire
Print "this is an test for interrupts I (right)= " ; Counter_right_tire

Speed = 600
If Counter_left_tire < 240 Then Call Engine_left_for(speed)
Elseif Counter_left_tire > 280 Then Call Engine_left_back(speed)
Else Call Engine_right_stop()
End If

If Counter_right_tire < 240 Then Call Engine_right_for(speed)
ElseIf Counter_right_tire > 280 Then Call Engine_right_back(speed)
Else Call Engine_left_stop()
End If

Waitms 10
Loop
End

PicNick
07.11.2005, 14:35
Versuch's mal so, schaut übersichtlicher aus (denk' ich)
z.B.


Select Case Counter_left_tire
Case Is < 240:
Call Engine_left_for(speed)
Case Is > 280:
Call Engine_left_back(speed)
Case Else:
Call Engine_right_stop()
End Select

alecs
07.11.2005, 15:02
Danke so funktioniert es auch erst mal, aber dennoch würde mich das Problem mit dem ELSEIF interessieren, denn man könnte es doch hin und wieder mal brauchen, oder ?

PicNick
07.11.2005, 15:16
Du mußt neue Zeilen machen


If Counter_left_tire < 240 Then
Call Engine_left_for(speed)
Elseif Counter_left_tire > 280 Then
Call Engine_left_back(speed)
Else
Call Engine_right_stop()
End If