Hallo, erstmal danke an alle die mir bei meinem Program nützliche tips gegeben haben. ich habe es heute nochmal neu angefangen und nach euren vorschlägen optimiert. Geht jetzt viel besser und ist auch wesentlich besser lesbar. Ich habe aber noch ein kleines Problem. Ich lese AD Werte der Kanäle 0-3 ein. Dazu habe ich eine Routine geschrieben die alle nacheinander ausliest und dann im SRAM speichert. Wenn ich jetzt mehr als 2 aktiviere fangen manche eingänge manchmal an zu flackern, also nicht wirklich von der Spannung her, nur der AD Wandler springt andauernd immer +/-1 Dezimalwert um. Woran könnte das liegen? Hat jemand ne gute idee für nen Algo. mit dem ich diese Schwankungen ausgleichen kann? mir gehts dabei nicht so sehr um die genauigkeit der Anzeige, lediglich das Flackern nervt etwas. Hab schon über ne Mittelwertbildung anchgedacht, meint ihr das ist effektiv genug??? Gruß Malte.
also +/-1 ist ein Bereich, mit dem man mit realen A/D-Wandlern leben muß. Wichtig für gute Ergebnisse sind saubere Masseführung (Agnd, Dgnd) stabile niederohmige Referenz (nicht direkt an Vcc hängen, da ist immer Müll drauf), wenn du nicht schnelle Signale abtasten willst, ist auch immer ein RC-Glied 1k/100n direkt am Eingang ein Hilfe. Ansonsten gibt es noch die Möglichkeit, die CPU während der Wandlung schlafen zu schicken, auch nicht schlecht. Zur Software: Mittelung ist natürlich eine Möglichkeit, die Anzeige zu beruhigen. Und um nochmal auf die modulare Programmierung zurückzukommen: schreibe die Wandlerroutine so, daß du die Kanalnummer übergibst, und einen Int-Wert zurückbekommst. Die Speicherung des Rückgabewertes auf der "richtigen" Variablenadresse erfolgt dann erst im Hauptprogramm.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.