Gast
#1949716
Hallo,
ich in am verzweifeln, mein LCD Modul (4 Bit Modus) läuft manchmal
nicht an.
Vermute einen Fehler in meiner Soft.
Unten ist ein original Code Ausschnitt vom HITECH C18 Treiber aus dem
sample Verzeichnis.
Kann mir jemand bitte sagen, welchen Sinn die unten markierten Zeilen
1-8 haben ?
Habe im Datenblatt vom Controller nichts gefunden, was dem entspricht.
Gruß Dirk
/* initialize the LCD */
void
lcd_init(unsigned char mode)
{
char init_value;
fourbit = 0;
if (mode == FOURBIT_MODE){
fourbit = 1;
init_value = 0x3;
}else{
init_value = 0x3F;
}
LCD_RS = 0;
LCD_EN = 0;
LCD_RW = 0;
LCD_RS_TRIS = OUTPUT_PIN;
LCD_EN_TRIS = OUTPUT_PIN;
LCD_RW_TRIS = OUTPUT_PIN;
LCD_DATA_TRIS = OUTPUT_DATA;
DelayMs(15);
1 LCD_DATA = init_value;
2 LCD_STROBE();
3 DelayMs(5);
4 LCD_DATA = init_value;
5 LCD_STROBE();
6 DelayUs(200);
7 LCD_DATA = init_value;
8 LCD_STROBE();
if (fourbit){
LCD_WAIT; //may check LCD busy flag, or just delay a little,
depending on lcd.h
LCD_DATA = 0x2; // Set 4-bit mode
LCD_STROBE();
lcd_cmd(0x28); // Function Set
}else{
lcd_cmd(0x38);
}
lcd_cmd(0xF); //Display On, Cursor On, Cursor Blink
lcd_cmd(0x1); //Display Clear
lcd_cmd(0x6); //Entry Mode
lcd_cmd(0x80); //Initialize DDRAM address to zero
}