Gast
#364672
Hallo an alle,
ich sitze jetzt schon 3 Tage an einem Problem und bekomme es nicht
gelöst. Hier der Code:
uint32_t x = 25123 ; // unsigned long int
uint8_t y [ 7 ] ; // Zeichen-Array
itoa ( x, y, 10 ) ; // einmal hin...
x = atoi ( y ) ; // und wieder zurück
printf ("itoa - atoi %lu", x ) ; // gibt Unsinn aus, wenn x>2^15
lcd_gotoxy (0, 0) ;
lcd_puts (y) ; // zeigt den gleiche Rechenfehler
Für x=0 bis 32768, also 2^15 funktioniert alles prima, von da ab,
kommen falsche Ergebnisse.
Sieht also aus, wie ein Vorzeichen-Problem, aber ich habe x als
unsigned definiert. Der Fehler tritt bereits bei itoa auf, wie das LCD
zeigt.
Was mache ich falch ?
Danke für Euere Mühe