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
Lesezeichen