unsigned char dispMenu(void) { menuItem* tempMenu,*tempMenu2; LCD_CMD (1);//clrscr //delay=10000; while (delay--){} LCD_CMD (1);//clrscr LCD_CMD (1);//clrscr LCD_CMD (1);//clrscr // первая строка - заголовок. Или пункт меню верхнего уровня //delay=10000; while (delay--){} LCD_GOTO (1,0); tempMenu = selectedMenuItem->Parent; if ((void*)tempMenu == (void*)&NULL_ENTRY) { // мы на верхнем уровне LCD_STRING ("MENU:"); } else { LCD_STRING ((char *)tempMenu->Text); } //lcd_clrscr(2); // LCD_GOTO (2,5); tempMenu2=selectedMenuItem->Previous; LCD_STRING ((char *)tempMenu2->Text); LCD_GOTO (3,4); LCD_PUTCHAR ('>'); LCD_GOTO (3,5); LCD_STRING ((char *)selectedMenuItem->Text); LCD_GOTO (4,5); tempMenu2=selectedMenuItem->Next; LCD_STRING ((char *)tempMenu2->Text); return (1); }
/***************************************************************************//*! * @brief Function for writting a time to LCD. ******************************************************************************/ static void lcd_settime (tTIME *p_time) { static uint8 u8Tgl = 0; LCD_Delete_Char(0); LCD_Delete_Char(1); LCD_Delete_Char(2); LCD_Delete_Char(3); LCD_GOTO(0); LCD_Write_Char (digits[p_time->tm_hour/10]); LCD_GOTO(1); LCD_Write_Char (digits[p_time->tm_hour%10]); LCD_GOTO(2); LCD_Write_Char (digits[p_time->tm_min/10]); LCD_GOTO(3); LCD_Write_Char (digits[p_time->tm_min%10]); if(u8Tgl=!u8Tgl) { _LCD_CHAR_V_COL_ON; } else { _LCD_CHAR_V_COL_OFF; } }
/***************************************************************************//*! * @brief Function for signalizing an accelerometer data to LCD. ******************************************************************************/ static void lcd_runningtext (uint8 u8TextPos, int8 *p_u8Char) { static uint8 i, u8ActChar; LCD_Delete_Char(0); LCD_Delete_Char(1); LCD_Delete_Char(2); LCD_Delete_Char(3); for (i = 0; i < 4; i++) { LCD_GOTO(i); u8ActChar = *(p_u8Char+u8TextPos+i-2); LCD_Write_Char (u8ActChar); } }