PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : error 7, 123, 248 wo ist das Problem?



chaoscrack
08.12.2007, 10:45
Hallo zusammen

Ich blick einfach nicht hinter den Fehler und hoffe jemand kann mir helfen.


Declare Sub Fahren(pwm_l As Integer , Pwm_r As Integer , Ml_1 As Bit , Ml_2 As Bit , Mr_1 As Bit , Mr_2 As Bit)

Dim Entfernung_r As Integer
Dim Entfernung_l As Integer

If Entfernung_l < 100 Then
If Entfernung_r < 100 Then
If Entfernung_l < Entfernung_r Then
Call Fahren(250 , 500 , 0 , 1 , 0 , 1)
Else
Call Fahren(500 , 250 , 0 , 1 , 0 , 1)
End If
Else
Call Fahren(1000 , 500 , 1 , 0 , 1 , 0)
End If
Else
If Entfernung_r < 100 Then
Call Fahren(500 , 1000 , 1 , 0 , 1 , 0)
Else
Call Fahren(1000 , 1000 , 1 , 0 , 1 , 0)
End If
End If

Sub Fahren(pwm_l As Integer , Pwm_r As Integer , Ml_1 As Bit , Ml_2 As Bit , Mr_1 As Bit , Mr_2 As Bit)
Portc.6 = Ml_1
Portc.7 = Ml_2

Portb.0 = Mr_1
Portb.1 = Mr_2

Pwm1a = Pwm_l
Pwm1b = Pwm_r
End Sub
Und hier die Fehlermeldungen die ich nicht versteh:
Error : 248 Line : 158 BYVAL should be used in declaration [[ 112]] , in File : C:\...
Error : 7 Line : 158 IF THEN expected [ 158] , in File : C:\...
Error : 123 Line : 158 END IF expected , in File : C:\...


Vielen Dank für eure Hilfe
Grüsse

peterfido
08.12.2007, 13:09
Der erste Fehler kommt, weil er byval vermisst



Declare Sub Fahren(byval pwm_l As Integer ,byval Pwm_r As Integer , byval Ml_1 As Bit ,byval Ml_2 As Bit ,byval Mr_1 As Bit ,byval Mr_2 As Bit)


2. und 3. Fehler: KA Sieht eigentlich iO aus...

So kompiliert er es fehlerfrei:



Declare Sub Fahren()

Dim Entfernung_r As Integer
Dim Entfernung_l As Integer
Dim Pwm_l As Integer
Dim Pwm_r As Integer
Dim Mrl As Byte

Ml_1 Alias Mrl.0
Ml_2 Alias Mrl.1
Mr_1 Alias Mrl.3
Mr_2 Alias Mrl.4


If Entfernung_l < 100 Then
If Entfernung_r < 100 Then
If Entfernung_l < Entfernung_r Then
Pwm_l = 250 : Pwm_r = 500 : Ml_1 = 1 : Ml_2 = 0 : Mr_1 = 1 : Mr_2 = 0
Call Fahren()
Else
Pwm_l = 500 : Pwm_r = 250 : Ml_1 = 0 : Ml_2 = 1 : Mr_1 = 0 : Mr_2 = 1
Call Fahren()
End If
Else
Pwm_l = 1000 : Pwm_r = 500 : Ml_1 = 1 : Ml_2 = 0 : Mr_1 = 1 : Mr_2 = 0
Call Fahren()
End If
Else
If Entfernung_r < 100 Then
Pwm_l = 500 : Pwm_r = 1000 : Ml_1 = 1 : Ml_2 = 0 : Mr_1 = 1 : Mr_2 = 0
Call Fahren()
Else
Pwm_l = 1000 : Pwm_r = 1000 : Ml_1 = 1 : Ml_2 = 0 : Mr_1 = 1 : Mr_2 = 0
Call Fahren()
End If
End If

Sub Fahren()
Portc.6 = Ml_1
Portc.7 = Ml_2

Portb.0 = Mr_1
Portb.1 = Mr_2

Pwm1a = Pwm_l
Pwm1b = Pwm_r
End Sub

PicNick
08.12.2007, 14:58
Ausweichen is feig :-)

Mach mal das mit den "Byval", vielleicht hat ihn das ins Schleudern gebracht.