Ok, ich konnte das Problem nach längerem hin und her nun lösen.
Die Init routine:
Ob die sache mit dem "set mode to 8 bit" so sauber programmiert ist bin ich mir nicht sicher. Funktionieren tut es zumindest bis jetzt.Code:void lcdInit(void) { // wait for more than 30ms after Vdd raised _delay_ms(32); lcdOut(0x00); // set mode to 8 bit if the lcd got no reset lcdOut(LCD_D5|LCD_D4); lcdOut(LCD_D5|LCD_D4|LCD_E); _delay_us(40); lcdOut(LCD_D5|LCD_D4); lcdOut(0x00); lcdOut(LCD_E); _delay_us(40); lcdOut(0x00); // set mode to 4 bit lcdOut(LCD_D5); lcdOut(LCD_D5 | LCD_E); _delay_us(40); lcdOut(LCD_D5); // from now on display can be interfaced using 4bit mode lcd4BitOut(0x28, 0); // function set 4 bit, 2 line mode, 5x8 Dots lcd4BitOut(0x0F, 0); // display on, cursor on, blink on lcdClear(); lcd4BitOut(0x06, 0); // entry mode, increment mode, entire shift off }






Zitieren

Lesezeichen