Forum: Mikrocontroller und Digitale Elektronik ADC mit ATMega8 Frage zu Wertebereich & "Nullwert"


von Michael (Gast)


Angehängte Dateien:

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

von crazy horse (Gast)


Lesenswert?

nur so als 1. Idee: Überlauf in adc?
Da addierst du 100 Werte rein...

von chris :) (Gast)


Lesenswert?

while(1)
{

ADCSRA |= (1<<ADSC);

while(ADCSRA & (1<<ADSC));

ADCSRA |= (1<<ADSC);

adc_wert = ADC;

ADCSRA &= ~(1<<ADEN);

}

versuchs mal mit dem code, der müsste funktionieren ...

von Michael (Gast)


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

von Michael (Gast)


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

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.