denke meine initialisierung ist jetzt richtig:
void lcd_init(void)
{
delay_ms(40);
RS=RW=0;
lcd_send(0b00101100,1); //function set --> RE=1!
delay_us(50);
lcd_send(0b00001001,1); //extended function set
delay_us(50);
lcd_send(0b00100000,1); //function set --> RE=0!
delay_us(50);
lcd_send(0b00100000,1); //function set in 4-Bit Mode
delay_us(50);
lcd_send(0b00001100,1); //Display On-Off Control
delay_us(50);
lcd_send(0b00000001,1); //Display Clear
delay_ms(2);
lcd_send(0b00000110,1);
}
jedoch klappt es immer noch nicht mit den 4-Zeilen. Nach zeile 0 springt
es automatisch auf zeile 2 und nicht auf zeile 1. Die Zeilen 1 und 3
sind sozusagen unbrauchbar!
Hier noch die lcd_send() funktion:
void lcd_send(int8 value, int1 four)
{
delay_cycles(1);
EN=1;
D7=bit_test(value,7);
D6=bit_test(value,6);
D5=bit_test(value,5);
D4=bit_test(value,4);
delay_cycles(1);
EN=0; //Oberes Nibble senden
delay_cycles(1);
if(four)
{
EN=1;
D7=bit_test(value,3);
D6=bit_test(value,2);
D5=bit_test(value,1);
D4=bit_test(value,0);
delay_cycles(1);
EN=0;
}
delay_us(30);
}