Interne Referenzspannung Atmega8

Gast #5204151
Lesenswert?

Hallo,
bin ich richtig der Annahme das ich mit folgenden Code eine 2,56V an Pin 
21 meines Atmega8 gegen GND messen müsste?

uint16_t readADC(uint8_t channel)
{
  uint8_t i;
  uint16_t result = 0;

  // Den ADC aktivieren und Teilungsfaktor auf 128 stellen
  ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);

  // Kanal des Multiplexers waehlen
  // AREF Verwenden
  ADMUX = channel | (1<<REFS0)| (1<<REFS1);

  // Den ADC initialisieren und einen sog. Dummyreadout machen
  ADCSRA |= (1<<ADSC);
  while(ADCSRA & (1<<ADSC));

  // Jetzt 3x die analoge Spannung and Kanal channel auslesen
  // und dann Durchschnittswert ausrechnen.
  for(i=0; i<3; i++) {
    // Eine Wandlung
    ADCSRA |= (1<<ADSC);
    // Auf Ergebnis warten...
    while(ADCSRA & (1<<ADSC));

    result += ADCW;
  }

  // ADC wieder deaktivieren
  ADCSRA &= ~(1<<ADEN);

  result /= 3;

  return result;
}

AREF (pin 21) hängt mit nen 100nF Kondensator gegen Masse.

Ich messe 0V an den Pin... Aber Warum?
Gast #5204162
Lesenswert?

ATmega8 Pin 21 ist AREF.

Deine Auswahl der Referenzspannung steht für "Internal 2.56V Voltage 
Reference with external capacitor at AREF pin"

In diesem Fall würde ich auch 2,56V an dem Pin erwarten. Ausprobiert 
habe ich das allerdings noch nie.

Bekommst du den die erwarteten Messwerte im ADCW Register?

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