Forum: Mikrocontroller und Digitale Elektronik Fehler beim ADC


von Tom (Gast)


Lesenswert?

Hallo Zusammen,

wo ist mein Fehler :(?

Ich versorgen den Controller mit +5V Betriebsspannung und habe am VREF 
eine Spannung von 4,8V angelegt.

Mit diesem Code messe ich die ADC Werte:
1
#define sbi(p,n)  (p) |= (1<<n)
2
3
int adc (uint8_t uiPin)
4
{
5
  sbi(ADCSRA,ADEN);  sbi(ADCSRA,ADPS2);  sbi(ADCSRA,ADPS0);
6
  ADMUX = 1;
7
  sbi(ADCSRA,ADSC); 
8
  while (bit_is_set(ADCSRA,ADSC));
9
  return ADCW;
10
}

Mein Rückgabewert geht jedoch nie auf Null wenn ich den Eingang mit 
Masse verbinde. Die Rückgabewerte kann ich mit 0-4,8V zw. 370-1023 
einstellen.

Wieso geht das nie auf nahe Null oder exakt null runter?!

DANKE!!!!

von Tom (Gast)


Lesenswert?

int adc (uint8_t uiPin)

bevor sich einer wundert: uiPin wird übergeben, weil ADMUX eigentlich 
felxibel ist...

spielt aber für das Beispiel keine Rolle..

von Walter (Gast)


Lesenswert?

Tom schrieb:
> Ich versorgen den Controller

welchen?

von Tom (Gast)


Lesenswert?

ATMega32

von Amateur (Gast)


Lesenswert?

Vielleicht stimmt's ja.
Mal AGND ausgemessen?

Sonst könnte ein Blick auf das Layout und den vollständigen Code nicht 
schaden.

von Tom (Gast)


Lesenswert?

Leider stimmt der Wert nicht, denn ich Messe am Eingang 0V - 4,8V.

Layouttechnisch habe ich das Teil auf meinem Steckbrett und ein LCD 
Verbunden. Die LCD Ansteuerung funktioniert.

Habe ich vieleicht die Einstellung für externe Ref falsch getroffen??

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
Noch kein Account? Hier anmelden.