void TM_HD44780_Init(uint8_t cols, uint8_t rows) { /* Initialize delay */ //TM_DELAY_Init(); //MD - Remove TM delay HD44780_RW_LOW; /* Init pinout */ TM_HD44780_InitPins(); /* At least 40ms */ HD44780_Delay(450); /* Set LCD width and height */ HD44780_Opts.Rows = rows; HD44780_Opts.Cols = cols; /* Set cursor pointer to beginning for LCD */ HD44780_Opts.currentX = 0; HD44780_Opts.currentY = 0; HD44780_Opts.DisplayFunction = HD44780_4BITMODE | HD44780_5x8DOTS | HD44780_1LINE; if (rows > 1) { HD44780_Opts.DisplayFunction |= HD44780_2LINE; } /* Try to set 4bit mode */ TM_HD44780_Cmd4bit(0x03); HD44780_Delay(450); /* Second try */ TM_HD44780_Cmd4bit(0x03); HD44780_Delay(450); /* Third goo! */ TM_HD44780_Cmd4bit(0x03); HD44780_Delay(450); /* Set 4-bit interface */ TM_HD44780_Cmd4bit(0x02); HD44780_Delay(100); /* Set # lines, font size, etc. */ TM_HD44780_Cmd(HD44780_FUNCTIONSET | HD44780_Opts.DisplayFunction); /* Turn the display on with no cursor or blinking default */ HD44780_Opts.DisplayControl = HD44780_DISPLAYON; TM_HD44780_DisplayOn(); /* Clear lcd */ TM_HD44780_Clear(); /* Default font directions */ HD44780_Opts.DisplayMode = HD44780_ENTRYLEFT | HD44780_ENTRYSHIFTDECREMENT; TM_HD44780_Cmd(HD44780_ENTRYMODESET | HD44780_Opts.DisplayMode); /* Delay */ HD44780_Delay(450); }
void HD44780_Clear(void) { HD44780_Cmd(HD44780_CLEARDISPLAY); HD44780_Delay(3000); }
void TM_HD44780_Clear(void) { TM_HD44780_Cmd(HD44780_CLEARDISPLAY); HD44780_Delay(50); }