//************************************ // Method: LCD_BusyWait // FullName: LCD_BusyWait // Access: public // Returns: void // Qualifier: funkcija ?aka, dokler ni LCD pripravljen ali dokler ne pote?e timeout. Timeout je odvisen od ure procesorja. // Parameter: unsigned int timeout //************************************ void LCD_BusyWait(unsigned int timeout) { for (unsigned int i=0;i<timeout;i++) { if (!LCD_Busy()) break; } }
void LCD_Write4Control (unsigned char CMD) { while ((LCD_Busy()&0X80)==0X80); // Test if LCD busy CLEAR_LCD_E; // Disable LCD port_lcd&= ~0xF0; // Load data to port port_lcd|=CMD; SET_LCD_WRITE ; // Set LCD to write SET_LCD_CMD; // Set LCD to command _delay_us(5); SET_LCD_E; // Write data to LCD _delay_us(3); CLEAR_LCD_E; _delay_us(5); // Disable LCD port_lcd&= ~0xF0; //delay_ms(2); }
// ***************************************** // // *** Write 1/2 byte of data to the LCD *** // // ***************************************** // void LCD_Write4Data (unsigned char Data) { while ((LCD_Busy()&0X80)==0X80); // Test if LCD Busy CLEAR_LCD_E; // Disable LCD port_lcd&= ~0xF0; // Load data to port port_lcd|=Data; SET_LCD_WRITE ; // Set LCD to write SET_LCD_DATA; // Set LCD to command _delay_us(5); SET_LCD_E; // Write data to LCD _delay_us(3); CLEAR_LCD_E; _delay_us(5); // Disable LCD port_lcd&= ~0xF0; //delay_ms(1); }
// Write a character to the LCD data register void LCD_Write(char dval) { LCD_Busy(); // Wait for busy to clear _gdm_lcd_data = dval; // Output character }
// Issue a command to the LCD command register void LCD_Command(unsigned char cval) { LCD_Busy(); // Wait for busy to clear _gdm_lcd_cmd = cval; // Ouptut command }