ADC Atmega8L - Unterschiede Atmega8?

OP #649300
Hallo,

ich betreibe einen M8L@3.3V mit dem Quellcode eines M8 der bei 5V läuft. 
Dabei fällt mir auf, dass der ADC bei 0-1650mV Werte von 0-777 liefert, 
und bei 1650-3300mV Werte von 1000-1777.
Ist das normal? Ich hätte schon erwartet, dass der Bereich 777-1000 auch 
ausgefüllt wird.
Oder mach ich irgendwo einen Fehler?

Eine weitere Sache die mir nicht ganz einleuchtet. Bei 10 Bit hab ich 
einen Bereich von 0-1023. Der ADC geht aber bis 1777. Warum?

Danke.
#649320
@ L. R. (badinode)

>ich betreibe einen M8L@3.3V mit dem Quellcode eines M8 der bei 5V läuft.
>Dabei fällt mir auf, dass der ADC bei 0-1650mV Werte von 0-777 liefert,
>und bei 1650-3300mV Werte von 1000-1777.
>Ist das normal?

Der ADC liefert sicher keine 1777. Denn der macht bestenfalls 10 Bit, 
sprich 1023 ist das Maximum.

>Oder mach ich irgendwo einen Fehler?

Wahscheinlich liefert deine Funktion schon ein in mV umgerechnetes 
Ergbnis. Und wenn der Code für 5V Betriebs-und Referenzspannung 
ausgelegt ist, dann klappt das mit 3.3V eben nicht.

>einen Bereich von 0-1023. Der ADC geht aber bis 1777. Warum?

Siehe oben.

Festkommaarithmetik

MfG
Falk
OP #649331
1
void adc_init(void) {
2
      ADMUX = 0b01000000;
3
      ADCSRA |= 0x80;
4
}
5

6
uint16_t readadchan(char n) {
7

8
      ADMUX = n;
9
      ADMUX |= 0x40;
10
      ADCSRA |= 0x44;
11

12
      while((ADCSRA & 0x40) !=0){};
13

14
      ADCSRA &= ~(0x44);
15
      return ADCW;
16
}

Das ist der Code. readadchan() wird öfters aufgerufen um zu mitteln.
Es findet keine Umrechnung in Spannungen oder sonstws statt. Ich gebe 
direkt den ADC-Wert aus.
OP #649365
Okay, nun nochmal für diejenigen, denen das vielleicht auch mal 
passieren sollte.

Der Fehler lag im
1
itoa(a, buf, 8);
. Hatte irrtümlicherweise angenommen, die 8 stünde für die Bufferlänge. 
Dabei steht sie für Octal. Also muss da eine 10 draus werden und gut is.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.