Gast
#1710464
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; }