Danke!

ich habe es entsprechend geändert aber ich bekomme : ? V auf dem LCD angezeigt!
Code:
#include <avr/io.h>
#include <inttypes.h>
#include <stdio.h>
#include "lcd.h"


void LCD(int result)
 
 {
  char buffer[5];
  double d;
  //int t;
  //int x;

  //d = result * (2.56/1024)*10000;
  d = result* (2.56/1024);
  //t = d / 10000;
  //x = d - (t * 10000);
  sprintf(buffer,"%4.2lf V",d);
 // itoa(result,buffer,10);
  lcd_gotoxy(7,1); 
  lcd_puts(buffer);

 }


uint16_t readADC(uint8_t channel) 

{
	uint8_t i;
	uint16_t result = 0;
	
	ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);// Den ADC aktivieren und Teilungsfaktor auf 64 stellen

	ADMUX = channel;// Kanal des Multiplexers waehlen
	
	ADMUX |= (1<<REFS1) | (1<<REFS0);// Interne Referenzspannung verwenden (also 2,56 V)
	
    ADCSRA |= (1<<ADSC);	// Den ADC initialisieren.. 
	while(ADCSRA & (1<<ADSC));// und einen sog. Dummyreadout machen
	
	for(i=0; i<3; i++) // Jetzt 3x die analoge Spannung and Kanal channel auslesen
	   {
		
		ADCSRA |= (1<<ADSC);// Eine Wandlung
		while(ADCSRA & (1<<ADSC));// Auf Ergebnis warten...
		result += ADCW;
	   }
	
	
	ADCSRA &= ~(1<<ADEN);// ADC wieder deaktivieren
	
	result /= 3;// und dann Durchschnittswert ausrechnen.
	
	return result;
}

int main(void) 
{
  int result;
  
  lcd_init(LCD_DISP_ON);
  lcd_puts("Die Spannung =");
  
  while(1)
	{
	 result = readADC(0);	//Auslesen der analogen Spannungen an Pin 0,
	 LCD(result);				   // also ADC0. In result steht das Ergebnis.
	 } 
return 0;
}
was mach ich denn falsch?
MfG