Der Wert für LCD_RS ist doch 1, wir benötigen aber 4 (RS ist PortBit2)sobald LCD_RS auf 1 gesetzt wird sollte auch RB2 high ein (wertigkeit 4)Code:#define LCD_RS PORTBbits.RB2
werde es aber an einem einfacheren prog testen.
wersuch ich gleich mal...x = zeichen & 0xf0;
PORTLCD = x; //höherwertiges nibbel
LCD_RS = 1; // LCD Daten-Mode setzen
=D> =D> =D> ich hab ein zeichenCode: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; }
leider sieht es so aus als wenn es ständig neu geschrieben würde es flackert etwas.







Zitieren

Lesezeichen