Danke euch beiden :-D !
Es funktioniert sehr schön, ich kann richtig beobachten wie fehlerhafte Werte aussortiert werden und sich nicht auf den Rest des Programms auswirken.
Code:
For I = 1 To 5
Mittelwertempf(i) = Mittelwertempf(i) * 3
Mittelwertempf(i) = Mittelwertempf(i) + Empf(i)
Shift Mittelwertempf(i) , Right , 2
Aempfh(i) = Mittelwertempf(i) + 12
Aempfl(i) = Mittelwertempf(i) - 12
If Empf(i) > Aempfh(i) Or Empf(i) < Aempfl(i) Then
Empf(i) = Mittelwertempf(i)
'Print "kaputt: " ; i
End If
Next
Ich nehme nur den mittelwert der letzten vier Messungen, das reicht anscheinend, denn die Fehler scheinen einzeln zu kommen. Mein Programm verlangsamt sich dadurch von 431Hz auf 410Hz. Das ist durchaus akzeptabel.
p.s.: Bei Bascom gibt es nichts wie
if wert1 > (wert2 + 10) then...
oder?
Lesezeichen