[elektro] LCD power up probléma

Andras Huszti kyrk at villamvadasz.hu
Tue Dec 27 10:41:48 CET 2011


Hello!

> Mi lehet a gond?
Nekem is volt problemam a hd44780-al. Mar nem emelekszem pontosan, hogy
kozvetlen bekapcsolaskor vagy csak akkor ha ujraindult a uC de az LCD
nem. Ilyenkor nem mindig sikerult ujrainicializalni a kijelzot. 4
bitesben hasznaltam emiatt ha felbyte kozben indul ujra a uC akkor
nehezen ert szot a kijelzovel. Ketsegtelen, hogy a kijelzot is jo lenne
resetelni, tapjat a uC-vel kapcsolni.

4 vagy 8 bites uzemmodban hasznalod?

Vegulis addig sakkoztam az inittel amig jo nem lett, beraktam egy-ket RS
billegtetest az init elejere:
void init_lcd_driver(void) {	
	removeTimer(&busyTimer);
	addTimer(&busyTimer);

	delayms(500);
	putDataToLCDPort(0x00);
	lcdTrisOut();

	E = 0;
	RS = 0;
	R_W = 0;
	E_TRIS = OUT;
	R_W_TRIS = OUT;
	RS_TRIS = OUT;
	Nop(); 		//wait for port becaus immediate read.

	//resync
	RS = 1;
	delayms(5);
	RS = 0;
	delayms(5);
	R_W = 1;
	delayms(5);
	R_W = 0;
	delayms(5);

	BACKLIGHT_TRIS = OUT;
	lcd_backlight_on();

	putDataToLCDPort(0x30);		//8bit
	tick_e();
	delayms(5);
	tick_e();
	delayms(5);
	tick_e();
	delayms(5);
	putDataToLCDPort(0x20);		//4bit
	tick_e();
	delayms(5);

	Send_Cmd_LCD(FUNCTION_SET);
	Send_Cmd_LCD(ENTRY_INC);
	Send_Cmd_LCD(CLR_DISP);
	Send_Cmd_LCD(DISP_ON);
	Send_Cmd_LCD(HOME);
}



More information about the Elektro mailing list