gelöst, so geht es.
Declare Function Filter(byval Filter_wert As Integer , Byval Raw_data As Integer) As Integer
Ergebnis(1) = Filter(ergebnis(1) , Sensor_x)
Der Name in der Declartion darf nicht der gleiche sein wie im Funktionsaufruf.
So also nicht!
Declare Function Filter(byval ergebnis(1) As Integer , Byval Raw_data As Integer) As Integer
Ergebnis(1) = Filter(ergebnis(1) , Sensor_x)
Code:$regfile = "m168def.dat" $crystal = 3686400 $baud = 115200 'Bootloader Baud = 115200 $hwstack = 96 $swstack = 96 $framesize = 96 '*** Dim Filter1 As Byte : Filter1 = 5 Dim Filter2 As Byte : Filter2 = 100 - Filter1 Dim Sensor_x As Integer : Sensor_x = 1000 Dim Sensor_y As Integer : Sensor_y = 2000 Dim Sensor_z As Integer : Sensor_z = 3000 Dim Ergebnis(3) As Integer '**** Declare Function Filter(byval Filter_wert As Integer , Byval Raw_data As Integer) As Integer Do Ergebnis(1) = Filter(ergebnis(1) , Sensor_x) Ergebnis(2) = Filter(ergebnis(2) , Sensor_y) Ergebnis(3) = Filter(ergebnis(3) , Sensor_z) Print Sensor_x ; " " ; Sensor_y ; " " ; Sensor_z ; " * " ; Print Ergebnis(1) ; " " ; Ergebnis(2) ; " " ; Ergebnis(3) If Sensor_x < 2500 Then Sensor_x = Sensor_x + 11 Sensor_y = Sensor_y + 11 Sensor_z = Sensor_z + 11 End If Loop Function Filter(byval Filter_wert As Integer , Byval Raw_data As Integer) As Integer Local Temp1 As Long Local Temp2 As Long Temp1 = Raw_data * Filter1 Temp2 = Filter_wert * Filter2 Temp2 = Temp2 + Temp1 Temp1 = Temp2 / 100 Filter = Temp1 End Function







Zitieren

Lesezeichen