Hallo!!! Ich möchte mit dem atmega8 eine Batteriespannung von 12 V an dem ad wandler messen ( über spannungsteiler und co) und einen ausgang nach der gemessenen spannung ein/ausschalten. nun habe ich im tut gelesen, das der wandler rauscht, und die 2 letzten bits springen. Wie kann ich es nun in assembler realisieren, das der pin z.b. im bereich zwischen 3,1-3,3 V ein und zwischen 4-4,3 V ausgeschaltet wird. dies würde einem dezimalwert von 634-675 und 819-880 entsprechen (vref 5V, 10bit). wenn ich nun den eingangswert, bzw die ergebnisregister ADCL und H z.b. mit dem dez.wert von 634 vergleichen würde, würde er evtl. - durch das rauschen bedingt - diesen wert niemals erreichen und nie schalten. habt ihr mir vielleicht einen codeschnipsel oder ne seite die mir dieses problem aufzeigt?! klar, ich könnte mit jedem einzelnen dezimalwert vergleichen, aber da wirste ja blöd im kopf, mal ganz von der durchlaufzeit abgesehen... ich danke euch schonmal im vorraus. MFG
Hallo, wo ist das Problem? Du hast eine Hysterese von über 100 Werten, also bei z.B. unter 675 einschalten, über 819 einschalten, fertig. Selbst webb er um 4Bit (16 Werte schawankt, passiert da noch nichts... Gruß aus Berlin Michael
Hi, bei dieser 'geforderten Ungenauigkeit' kannst Du das ADLAR-Bit im ADMUX setzen und nur das ADCH-Register auslesen. dein Wertebereich geht nunmal schon nur noch bis 255. Dieses Ergebnis schiebst Du ein-zwei mal nach rechts(lsr). Jetzt hast Du zwei ungenaue Schwellen, die Du einfach abfragen kannst. Es sei denn, Du brauchst den ADC auch noch für andere Sachen. AxelR.
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.