Der Wert für LCD_RS ist doch 1, wir benötigen aber 4 (RS ist PortBit2)
Code:
#define LCD_RS PORTBbits.RB2
sobald LCD_RS auf 1 gesetzt wird sollte auch RB2 high ein (wertigkeit 4)
werde es aber an einem einfacheren prog testen.
x = zeichen & 0xf0;
PORTLCD = x; //höherwertiges nibbel
LCD_RS = 1; // LCD Daten-Mode setzen
wersuch ich gleich mal...
Code:
void LCD_WriteZeichen(unsigned char zeichen)
{
unsigned char x;
delay100us(250);
// LCD_BUSY(); // Warten bis LCD bereit ist
LCD_RW = 0; // LCD im Schreiben-Mode
LCD_RS = 1; // LCD im Befehl-Mode
delay100us(1);
x = zeichen & 0xf0;
PORTLCD = x; //höherwertiges nibbel
LCD_RS=1;
delay100us(1);
enable();
delay100us(50); //5ms warten nach den 1.nibble
x = zeichen;
x = (x << 4)& 0xf0; //niederwertiges nibbel
PORTLCD = x;
LCD_RS=1;
delay100us(1);
enable();
delay100us(50); //5ms warten nach den 2.nibble
LCD_RS = 0;
}
=D> =D> =D> ich hab ein zeichen 
leider sieht es so aus als wenn es ständig neu geschrieben würde es flackert etwas.
Lesezeichen