Ich lass es auch nur im Simulator laufen und bei mir kommt nur murks raus.Das ist mein kompletter CodeCode:$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 Dim Temp(2) As Long '**** Declare Function Filter_x(byval Ergebnis() As Integer , Byval Sensor_x As Integer) As Integer Declare Function Filter_y(byval Ergebnis() As Integer , Byval Sensor_y As Integer) As Integer Declare Function Filter_z(byval Ergebnis() As Integer , Byval Sensor_z As Integer) As Integer Do Ergebnis(1) = Filter_x(ergebnis(1) , Sensor_x) Ergebnis(2) = Filter_y(ergebnis(2) , Sensor_y) Ergebnis(3) = Filter_z(ergebnis(3) , Sensor_z) Print Sensor_x = Sensor_x + 1 Sensor_y = Sensor_y + 2 Sensor_z = Sensor_z + 3 Loop Function Filter_x(byval Ergebnis() As Integer , Byval Sensor_x As Integer) As Integer 'Local Temp(2) As Long Local Filter_out As Integer Temp(1) = Sensor_x * Filter1 Temp(2) = Ergebnis(1) * Filter2 Temp(2) = Temp(2) + Temp(1) Temp(1) = Temp(2) / 100 Filter_out = Temp(1) Print "Filter 1 Rohwert " ; Sensor_x ; " Temp(1) " ; Temp(1) ; " Temp(2) " ; Temp(2) ; " Filter_out " ; Filter_out Filter_x = Filter_out End Function Function Filter_y(byval Ergebnis() As Integer , Byval Sensor_y As Integer) As Integer 'Local Temp(2) As Long Local Filter_out As Integer Temp(1) = Sensor_y * Filter1 Temp(2) = Ergebnis(2) * Filter2 Temp(2) = Temp(2) + Temp(1) Temp(1) = Temp(2) / 100 Filter_out = Temp(1) Print "Filter 2 Rohwert " ; Sensor_x ; " Temp(1) " ; Temp(1) ; " Temp(2) " ; Temp(2) ; " Filter_out " ; Filter_out Filter_y = Filter_out End Function Function Filter_z(byval Ergebnis() As Integer , Byval Sensor_z As Integer) As Integer 'Local Temp(2) As Long Local Filter_out As Integer Temp(1) = Sensor_z * Filter1 Temp(2) = Ergebnis(3) * Filter2 Temp(2) = Temp(2) + Temp(1) Temp(1) = Temp(2) / 100 Filter_out = Temp(1) Print "Filter 3 Rohwert " ; Sensor_x ; " Temp(1) " ; Temp(1) ; " Temp(2) " ; Temp(2) ; " Filter_out " ; Filter_out Filter_z = Filter_out End Function
Das kommt als Ausgabe...Code:Filter 1 Rohwert 1000 Temp(1) 50 Temp(2) 5000 Filter_out 50 Filter 2 Rohwert 2000 Temp(1) 2000 Temp(2) 200000 Filter_out 2000 Filter 3 Rohwert 3000 Temp(1) 2050 Temp(2) 205000 Filter_out 2050 Filter 1 Rohwert 1001 Temp(1) 97 Temp(2) 9755 Filter_out 97 Filter 2 Rohwert 2002 Temp(1) 2002 Temp(2) 200200 Filter_out 2002 Filter 3 Rohwert 3003 Temp(1) 2052 Temp(2) 205205 Filter_out 2052 Filter 1 Rohwert 1002 Temp(1) 142 Temp(2) 14225 Filter_out 142 Filter 2 Rohwert 2004 Temp(1) 2004 Temp(2) 200400 Filter_out 2004 Filter 3 Rohwert 3006 Temp(1) 2054 Temp(2) 205410 Filter_out 2054
Ich benutze Bascom 2.0.8.0







Zitieren

Lesezeichen