Code:
void display(uint16_t result)
{
lcd_init(LCD_DISP_ON_CURSOR); //LCD initialisieren
lcd_gotoxy(0,0); //Cursor an erste Stelle setzen
lcd_puts("Temperatur:"); //"Temperatur" ausgeben
lcd_gotoxy(11,0); // Cursor hinter "Temperatur:" setzen
char buffer[8]; //Array für itoa anlegen
float f=((float)result*5)/1024; //
if(f<0)f=0;
itoa((int)f,buffer,10);
lcd_puts(buffer);
f=(f-(int)f)*1000;
if(f<100)lcd_putc('0');
if(f<10)lcd_putc('0');
itoa((int)f,buffer,10);
lcd_putc(',');
lcd_puts(buffer);
PORTD = result; //Den Digitalen Wert mit Hilfe der LED`s anzeigen
return;
}
sicher, dass das so überhaupt kompiliert? weil char buffer[8] und float f mitten im code deklariert sind..
das 10bit result direkt an PORTD auszugeben (der ja nur 8bit hat) wird zu falschen ergebnissen führen.
gruesse
Lesezeichen