Hallo Forum, ich habe eine Verständnisfrage zum ADC. (in meinem Fall atmega8) Der ADC ist ein 10-bit Wandler und kann 1024 zustände (0-1023) annehmen. Will ich nun von einem angeschlossenem Widerstand (z.B. Poti, NTC etc.) auf eine physikalische Grösse schließen (z.B. Temperatur etc.) muss ich (ständig) eine Reihe von >8 bit Berechnungen machen. (ADC Register --> Volt --> Physikalische Grösse) Wäre es nicht einfacher, oder zumindest 'legitim' eine Lookuptable mit den 1024 möglichen Zuständen des ADC in den AVR zu speichern ? z.B. die Ergebnissregister des ADC sind high:00000010 low:00000000 also 512d. Bei Uref =5V wären das 2.5V. Könnte dann nicht einfach an der 512sten Stelle der Tabelle 2500 (in mv) stehen? Ist es richtig, dass der Speicherbedarf für diese LUT dann (mit 16bit = 2Byte) 2Byte*1024 Werte = 2048Byte=2KB beträgt ? Ist dies der Grund, warum man ADC Anwendungen nicht mit LUTs löst ? Danke für Lesen und Antworten
Genau! Tabellen macht man nur wenn man entweder a) zu faul oder nicht in der Lage ist, eine vorgegebene Formel in Software zu "giessen", b) die Berechnung zu lange dauert und man grosse Geschwindigkeiten der Datenverarbeitung braucht, c) ein so kurioser Zusammenhang zwischen Eingangs- und Ausgangsdaten besteht, dass keine Formel möglich ist oder aufwändiger als eine Tabelle wird, d) oder eiene Kombination aus a) bis c).
So furchtbar sind die umrechnungen ja auch nicht. ein, zwei muls und eine handvoll adds, das ist weitaus fixer als der ADC für ein sample braucht. Für solche einfachen add/mul Rechnungen lohnt sich wegen vorhandenem hardware multiplier eine LUT nicht. Der Zugriff auf die LUT wird kaum schneller sein. LUTs machen sinn für nichtlineares wie SQRT und vielleicht DIV
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.