Mit diesem Programm Lese ich aus dem LCD.

Das Display gibt immer nur 0xFF aus.... ist es evtl Defekt?

Ich hab zum Testen mal LED an D0----7 angeschlossen, über 1KOhms...

Auch bei RESET ändert sich nichts an der Anzeige... ich glaub ich habs gegrillt???

Code:
void LCD_INPUT(void){
	//LCD_DATA als INPUT und Pullup aus
	LCD_DATA_DDR  = 0x00;
	LCD_DATA_PORT = 0x00;	
	//LCD_CTRL als Output und Pullup aus
	LCD_CTRL_DDR  &=~ (1<<LCD_RS)|(1<<LCD_RW)|(1<<LCD_E);
	LCD_CTRL_PORT &=~ (1<<LCD_RS)|(1<<LCD_RW)|(1<<LCD_E);
}


void LCD_OUTPUT(void){
	//LCD_DATA als OUTPUT und Pullup aus
	LCD_DATA_DDR  = 0xFF;
	LCD_DATA_PORT = 0x00;	
	//LCD_CTRL als Output und Pullup aus
	LCD_CTRL_DDR  &=~ (1<<LCD_RS)|(1<<LCD_RW)|(1<<LCD_E);
	LCD_CTRL_PORT &=~ (1<<LCD_RS)|(1<<LCD_RW)|(1<<LCD_E);
}


uint8_t LCD_READ( uint8_t RS ){
	
	//Datenrichtungseinstellung für READ
	LCD_INPUT();
	
	//Registerwahl
	if( RS )	{ LCD_CTRL_PORT |=  (1<<LCD_RS); } //RS = 0 Steuerregister
	else		{ LCD_CTRL_PORT &= ~(1<<LCD_RS); } //RS = 1 Datenregister
	
	//RW HIGH setzen
	LCD_CTRL_PORT |=  (1<<LCD_RW);
	
	//Enable HIGH setzen
	LCD_CTRL_PORT |=  (1<<LCD_E);
	
	//Bisschen Warten bis Daten anliegen 
	uint8_t t = 0; while( t < 200 ){ t++; }
	
	//DATEN LESEN
	uint8_t data = LCD_DATA_PIN;
	
	//Enable LOW setzen
	LCD_CTRL_PORT &=~ (1<<LCD_E);	
	
	//RW LOW setzen
	LCD_CTRL_PORT &=~ (1<<LCD_RW);
	
	return data;
}