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; }







Zitieren

Lesezeichen