Den Digitalisierungsfehler des AD-Eingangs kann ein Tiefpass aber eigentlich auch nicht verhindern und der reicht vermutlich schon um die letzte stelle in deiner Anzeige "schwanken" zu lassen.
Stimmt natürlich, das hatte ich nicht bedacht.
Deine Idee die Messwerte zu mitteln war doch gar nicht verkehrt. Das das zuviel speicher braucht, liegt daran, dass du die Messwerte in einem Array gespeichert hast, anstatt sie direkt aufzuaddieren.
Ja, allerdings ist das grundlegende Problem daran, dass die Schleife so schnell durchlaufen wird, dass der Mittelwert wieder nur eine Momentaufnahme zeigt.
Die Flackernde Anzeige am Display kannst du auch dadurch wegbekommen, dass du den neuen Messwert mit dem vorherigen vergleichst und nur dann anzeigts, wenn er um x grösser oder kleiner ist als der vorherige, sprich wenn sich der Füllstand der Zisterne tatsächlich nennenswert geändert hat.
Gute Idee. Ich habe in letzter Zeit studiumsbedingt viel C programmiert, mich aber noch nicht an Winavr GCC herangetraut.
Eine Abfrage wie
Code:
if Volumen < Volumen_vorher + 50 then
Volumen = Volumen_vorher
end if
erzeugt immer einen Fehler. Wie muss der korrekte Syntax lauten? Überhaupt wenn ich in Bascom versuche mehrere (arithmetische) Operationen wie z.B. x=5*7+15 auszuführen funktioniert das nicht.
Nochmals Danke an alle, die trotz meiner Fragerei noch nicht aufgegeben haben.
Lesezeichen