ADC mit ATMega8 Frage zu Wertebereich & "Nullwert"

Gast #1020272
Lesenswert?

Hallo,

ich hätt da mal ne Frage ;) :

Also ich hab das STK200-Board mit einem Atmega8 bestückt und will nun 
mit einem Poti einen Spannungsbereich von 0 - 5V "digitalisieren".

Hab das auch soweit hinbekommen... NUR:
Liegt der Wertebereich zwischen 0 - 60 ...  (siehe Anhang)
Geht der Wert immer wieder auf 0 zutück ... (siehe Anhang)

Hier mein Quellcode:
1
int adc=0;;
2

3
ADMUX  = (0<<REFS1) | (1<<REFS0);   
4
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (0<<ADPS1) | (1<< ADPS0);  
5
ADMUX |= (1<<MUX0);    
6

7

8
int i=0;
9

10
while(1)
11
{
12
  for (i=0; i<100 ; i++)
13
  {
14
    ADCSRA |= (1<<ADSC);
15
    while (ADCSRA & (1<<ADSC) ) {}
16
    adc += ADCW;
17
  }
18
  adc = adc/100;
19
  USART_transmit(adc);
20
  adc=0;
21
}

Kennt jemand das Problem und wie mans löst...
Bzw. hab ich einen Fehler im Quellcode?


Vielen Dank
Michael
Angehängte Dateien:
Gast #1021428
Lesenswert?

Hallo,
Der Code funktioniert leider nicht...

Dadurch, dass am Schluss das ADEN Bit auf 0 gesetzt wird deaktiviere ich 
doch den ADC... Und aktiviere ihn ja nicht mehr
-> Also wird nur eine Wandlung am Anfang vorgenommen... oder?


@crazy horse:
ich habs auch ohne Mittelung probiert und da funktionierts leider auch 
nicht...


Noch ne Idee??

Michael
Gast #1021483
Lesenswert?

;-) OH Mann!!!

Ich hab meinen Poti an einen falschen ADC Anschluss angeschlossen...
Jetzt funktionierts einwandfrei...

Trotzdem ganz interessant, was für Sachen der Atmega auf dem falschen 
Pin ausspuckt...


Und nochmal vielen Dank für die schnellen Antworten!


Gruß
Michael

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