Spannungsmessung ADC

Gast #4215364
Lesenswert?

Hallo,

ich möchte eine Spannung (0 bis 5V) aus dem Netzgerät mit einem Attiny26 
Mikrocontroller (ADC Wandler)  messen. Da ich keine Erfahrungen 
bezüglich Mikrocontroller habe, habe ich bereits das Datenblatt (ADC) 
durchgelesen und auch schon viel gegoogelt. Gibts eventuell Quellcode 
(Assembler), welche ich mir durchlesen könnte. Kann jemand mir Tipps 
geben wie ich am besten an diese Aufgabe herangehen soll?

Danke im Voraus
Gast #4218981
Lesenswert?

Hi
>Ich habe bis jetzt nicht ganz
>verstanden warum ich ein ADSC Bit brauche.

Damit startet man eine Messung und stellt fest, wann der ADC damit 
fertig ist. Eigentlich eines der wichtigsten Bits.

MfG Spess
#4219055
Lesenswert?

Susi schrieb:
> Muss ich immer diesen Bit
> setzen (ADSC=1)?

Ja, das Rücksetzen erledigt der ADC selbst, als Zeichen dafür, dass die 
Messung fertig ist. Du kannst und sollst das per Software nicht machen.

Es gibt da auch noch die Möglichkeit, dass der ADC nur einmal über das 
ADSC Bit angestossen wird, und dann fortlaufend von selbst wandelt. 
Dieser Modus  wird über Bit5 ADFR angewählt.
Gast #4219073
Lesenswert?

Auf der Seite von AVR- Mikrocontroller. Link:

 http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

Code:

; ADC initialisieren: ADC0, Vcc als Referenz, Single Conversion, 
Vorteiler 128

    ldi     temp1, (1<<REFS0)                   ; Kanal 0, interne 
Referenzspannung 5V
    out     ADMUX, temp1
    ldi     temp1, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)
    out     ADCSRA, temp1


ist ADSC im ADSCR Register auch nicht gesetzt. Ist da ein Fehler 
unterlaufen? Da im Datenblatt steht, dass ADSC gesetzt werden soll.

Mfg
(Firma: matzetronics) #4219163
Lesenswert?

Susi schrieb:
> ist ADSC im ADSCR Register auch nicht gesetzt. Ist da ein Fehler
> unterlaufen? Da im Datenblatt steht, dass ADSC gesetzt werden soll.

Jo, das ist ja auch nur die Voreinstellung. Ein paar Zeilen darunter 
wird der ADC dann per Setzen von ADSC gestartet:
1
; neuen ADC-Wert lesen  (Schleife - 256 mal)
2
 
3
sample_adc:
4
    sbi     ADCSRA, ADSC        ; den ADC starten
5
 
6
wait_adc:
7
    sbic    ADCSRA, ADSC        ; wenn der ADC fertig ist, wird dieses Bit gelöscht
8
    rjmp    wait_adc
und per Abfrage des ADSC Bits wird solange gewartet, bis der ADC fertig 
ist, denn das Bit wird vom ADC gelöscht, sobald die Messung beendet ist. 
Dann darf aus den Ergebnisregistern der neue Messwert gelesen werden.
Denke daran, das die Registerbezeichnungen und auch manchmal die 
Bitpositionen zwischen verschiedenen AVRs variieren, du nimmst also die 
Bezeichnungen aus dem Datenblatt, was für deinen MC gilt.
Gast #4219174
Lesenswert?

Matthias S. schrieb:
> ... du nimmst also die Bezeichnungen aus dem Datenblatt, was für
> deinen MC gilt.

Und wenn dann irgendetwas hakt, kann es - auch wenn das sinnvollerweise 
nicht passieren sollte - ggf. auch an Abweichungen zwischen Datenblatt 
und prozessorspezifischer Header-Datei liegen.

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