Forum: Mikrocontroller und Digitale Elektronik Fehler bei GLCD Ausgabe und itoa


von Benedikt (Gast)


Lesenswert?

Hallo zusammen,

ich gebe gerade den ADC-Wert auf ein glcd aus. Später rechne ich diesen 
Wert in eine Temp um, aber soweit bin ich nicht gekommen, weil sich ein 
mir noch nicht verständlicher Fehler eingeschlichen hat.

Bei ca. 25 Grad erscheint ein Wert von 160.
Halte ich den LM34 jetzt in Eis-Wasser, geht der ADC Wert langsam runter 
und bei 100 geht es nicht weiter mit 99 sondern an erster Stelle 
erscheint eine 9 anstatt einer 0. Also erschein nach 100 z.B. nicht 95, 
sondern 995.
Woran liegt das und wie kann ich das beheben?

Hier das Programm: (Atmega128 @ 16Mhz und der Tempsensor ist ein LM34)

#include <avr/io.h>
#include <util/delay.h>
#include <t6963c.h>
#include <stdlib.h>

uint16_t temp1;
char temp1_char[4];

int main (void)
  {
    glcd_setup();
    glcd_init();
    glcd_clear_text();
    glcd_clear_graph();

    ADCSR=0xc5;

    glcd_print(0,3, "T-Sensor 1: ");

    while(1)
    {
      loop_until_bit_is_clear(ADCSR,ADSC);
      temp1 = ADCW;
      utoa( temp1, temp1_char, 10 );
      glcd_print(13,3, temp1_char);
      glcd_print(17,3, "C");
      ADCSR |= (1<<ADSC);
      _delay_ms (1000);

    }
    return 0;
  }

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.