Seltsame Werte bei ADC (ATMEGA8)

Gast #1219229
Lesenswert?

Hi Folks,

Ich habe ein problem dass ich nicht verstehe...
Habe aus dem Tutorial einfach das LCD und das ACD beispiel 
zusammenkopiert.

Codeschnipsel:
  //ADC Test
  uint16_t adcval;
  char str[16];

        adcval = ReadChannel(0); /* MUX-Bits auf 0b0000 -> Channel 0 */

  itoa(adcval, str, 4);

  set_cursor(0,4);
  lcd_string(str);

AVCC und Aref liegen auf VCC (5V)
Wenn ich den ADC0 Pin auf Masse lege, kommt eine 0 raus. Das sollte 
soweit auch noch Stimmen :)
Aber wenn ich den ADC0 Pin auf VCC lege bekomme ich den Wert 33333 
zurück. Ich hätte dort 1023 erwartet...

Am Vorteiler sollte es ja nicht liegen, da ja Gleichspannung am Pin 
nagelegt ist.

Das ADC beispiel ist unverändert.
* interne Referenzspannung
* Vorteiler auf 8

macht itoa(); an der stelle Mist?

Schönen Sonntag Abend noch!

Sandra
#1219235
Lesenswert?

Sandra Schaefer wrote:
> macht itoa(); an der stelle Mist?
Wenn man einen unsigned int ausgeben will, sollte man keine Funktion 
benutzen, die zur Ausgabe eines (signed) int vorgesehen ist. Soweit 
dazu.

Warum jetzt konkret ein solcher Wert herauskommt, kann man anhand des 
gezeigten Codeschnipsels nicht sagen, aber die Vermutung, dass irgendwo 
eine implizite Typumwandlung stattfindet, die nicht sein soll, oder dass 
beim Auslesen und verarbeiten des Wertes irgendwas schief läuft, drängt 
sich auf...
#1219242
Lesenswert?

Sandra Schaefer wrote:
>   itoa(adcval, str, 4);
Autsch, war mir grad gar nicht aufgefallen. Du solltest Dir in der Doku 
unbedingt mal anschauen, welche Parameter itoa überhaupt erwartet! Die 
4 da hinten ist die Basis des Ausgabe-Zahlensystems!

Und jetzt rate mal, was 1023 im Vierersystem ist... Genau, 33333!
Gast #1219248
Lesenswert?

>> itoa(adcval, str, 4);
> Autsch, war mir grad gar nicht aufgefallen. Du solltest Dir in der Doku
> unbedingt mal anschauen, welche Parameter itoa überhaupt erwartet! Die
> 4 da hinten ist die Basis des Ausgabe-Zahlensystems!

das heißt wenn ich die 4 durch eine 10 ersetze sieht es besser aus?
#1219263
Lesenswert?

Du hast oben aber was von 33333 geschrieben, und das ist 1023 (was ja 
auch zu erwarten gewesen wäre).

Aber wie schon oben gesagt, für die Ausgabe von vorzeichenlosen Zahlen 
sollte man keine Funktion nehmen, die zur Ausgabe von 
vorzeichenbehafteten Zahlen vorgesehen ist! Es gibt auch eine Funktion 
für vorzeichenlose...

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