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