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
Habe noch ein WINXP SP3 laufen. Mir fallen auch keine Einstellungen in der IDE ein, die da Einfluß haben könnten. Melde mich, wenn mir noch was einfällt.
Hoffentlich liegt das Ziel auch am Weg 

Lesezeichen