So also wenn ich folgenden Code in meinen Controller schreibe:
Code:
#include <avr/io.h>
#include <inttypes.h>
#include <stdlib.h>
#include <lcd.h>
#define F_CPU = 4000000UL;


uint16_t readADC(uint8_t);			//Prototyp von readADC
void display(uint16_t result);		//Prototyp von display
char buffer[8];					//Array für itoa anlegen

int main(void) 
{
	
	DDRD = 0xff;  					//PORT D als Ausgang definieren (Hier sind 8 LED`s angeschlossen
	DDRB = 0xff;					//PORT B als Ausgang
	uint16_t result = readADC(0);	//Auslesen der analogen Spannungen an Pin 0,
									// also ADC0. In result steht das Ergebnis.
	display(result);				//Umrechnung und Ausgabe der Temperatur auf Display und LED`s
	return 0;
}


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(0,1);				// Cursor in die zweite Zeile setzen
	itoa((int)result,buffer,10);	//AD-Wert umrechnen
	lcd_puts(buffer);				//AD-Wert in der zweiten Zeile ausgeben
	
	lcd_gotoxy(11,0);				// Cursor hinter "Temperatur:" setzen
	
	//float f=((float)result*5)/1024;	
	//if(f<0)f=0;
	//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;
}



uint16_t readADC(uint8_t channel) 

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

	// Kanal des Multiplexers waehlen (ADC 0)
	ADMUX = (!(1<<MUX0)) | (!(1<<MUX1)) | (!(1<<MUX2));
	
	// interne Referenzspannung verwenden (also 2,56 V)
	ADMUX |= (1<<REFS1) | (1<<REFS0);
	
	// Den ADC initialisieren und einen sog. Dummyreadout machen
	ADCSRA |= (1<<ADSC);
	while(ADCSRA & (1<<ADSC));
	
	// Jetzt 3x die analoge Spannung and Kanal channel auslesen
	// und dann Durchschnittswert ausrechnen.
	for(i=0; i<3; i++) {
		// Eine Wandlung
		ADCSRA |= (1<<ADSC);
		// Auf Ergebnis warten...
		while(ADCSRA & (1<<ADSC));
		
		result += ADC;
	}
	
	// ADC wieder deaktivieren
	ADCSRA &= ~(1<<ADEN);
	
	result /= 3;
	
	return result;
}
Dann zeigt mir das Display in der zweiten Zeile an erster Stelle den AD-Wert an (43. Was auch der Spannung entspricht die ich am AD-Wandler Eingang mit dem Multimeter messen kann. Das zeigt mir dass die AD-Wandlung korrekt funktioniert. Nun werde ich mich also noch einmal intensiver mit der Umrechnung beschäftigen müssen...

Grüße!!

Bean