mikrocontroller.net

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


Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:
int adc=0;;

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


int i=0;

while(1)
{
  for (i=0; i<100 ; i++)
  {
    ADCSRA |= (1<<ADSC);
    while (ADCSRA & (1<<ADSC) ) {}
    adc += ADCW;
  }
  adc = adc/100;
  USART_transmit(adc);
  adc=0;
}

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


Vielen Dank
Michael

Autor: crazy horse (Gast)
Datum:

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

Autor: chris :) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.