ADC in Assembler

Gast #313083
Lesenswert?

VREF ist die Referenzspannung, auf die der Messbereich des ADC
abgebildet wird (1 LSB -> VREF/1024 beim 10-Bit-ADC). VREF muss also
größer sein als die zu messende Spannung. Wenn Du nur eine Spannung
messen willst, brauchste auch nur einen Analog-Eingang.
Gast #313085
Lesenswert?

Das 'Least Significant Bit', also das niederwertigste Bit (Bit Nr. 0).
Das ist die kleinste Stufe, die mit einer Binärzahl darstellbar ist,
also der kleinste Wert, den der Wandler auflösen kann.

Du solltest Dich aber wirklich mal mit den Grundlagen
auseinandersetzen:-)

Gruß

Johnny
Gast #313086
Lesenswert?

ja ok das lsb das niedriegste bit ist weiß ich ich dachte hier heißt es
was anderes, weil "1 LSB -> VREF/1024 beim 10-Bit-ADC" kam mir
komisch vor was hat das mit dem lsb zu tun und für was die 1?
Gast #313087
Lesenswert?

Ich war zu faul, "Ein LSB" zu schreiben, deshalb habe ich "1 LSB"
geschrieben. Sorry, wenns verwirrt hat.

Das LSB ist die kleinste Darstellbare Zahl (Entspricht einer '1').
Wenn man eine Binär-Zahl mit n Bit hat, dann kann man mit dieser Zahl
2^n Zustände darstellen. Ein A/D-Wandler tut nix anderes als einen
analogen Messwert digital auf seinen Wertebereich abzubilden. Der
Wertebereich eines A/D-Wandlers mit 10 Bit Auflösung sind also die mit
10 Bit darstellbaren Zahlen (0...1023). Um dem ADC zu sagen, welcher
Wert der größten darstellbaren Zahl entspricht, wird die
Referenzspannung benötigt. Diese wird in 2^n (also bei 10 Bit 1024)
Schritte aufgeteilt. Vref / 2^n oder hier speziell Vref / 1024 ist
damit ein LSB, also der kleinste darstellbare Wert.

Ich hoffe das war jetzt verständlicher. Hat mir meine Schreibfaulheit
nix genützt...
Gast #313088
Lesenswert?

Hallo,

ein kleiner Tip noch am Rande, für die weitere Verarbeitung
des Ergebnisses ist es besser ein 16-Bit-Registerpaar zu nehmen.
Davon gibt es 4 Stück im AVR.
Es sind die Register:
r24-r25,(ohne Namen), r26-r27(XL-XH), r28-r29(YL-YH) und
r30-r31(ZL-ZH).

Es grüsst
Arno
Gast #452291
Lesenswert?

Hallo,
ich probiere gerade einen Wert mit einem Tiny15 einzulesen.
Allerdings macht der AVR nicht das was er soll.
Ich möchte die Versorgungsspannung als Referenzspannung benutzen,
den ADC starten und nach einer kurzen Pause den Wert auslesen.
Nach 25ms sollte der ADC doch fertig sein oder kann ich das so nicht 
realisieren ?



reset:  sbi  PORTB,TxD  ;Init port pins
    sbi  DDRB,TxD
    sbi admux,mux1   ;Eingang 2 wählen

    sbi adcsr,adps0
    sbi adcsr,adps2  ;Teiler durch 8
    sbi adcsr,aden  ;ADC aktivieren
    rcall pause    ;25ms

forever:
    sbi adcsr, adsc   ;Start Wandlung
    rcall pause     ;kurz warten
    in txbyte,adcl   ;LowByte einlesen
                usw....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren