- void showimage(void)
- {
- int i,j;
- set_cursor(10,120);
- gram_prepare();
- for(j=0;j<80;j++)
- {
- set_cursor(10,120+j);
- gram_prepare();
- for(i=0;i<80;i++)
- {
- write_data(gImage_rtc[(j*80+i)*2]);
- write_data(gImage_rtc[(j*80+i)*2+1]);
- }
- }
- }
此外为了时钟的显示,对时钟显示函数进行了修改,修改后的内容为:
- void Time_Display(u32 wTimeVar)
- {
- u32 THH = 0, TMM = 0, TSS = 0;
- u8 c;
- wTimeVar %= 86400;
- THH = wTimeVar/3600;
- TMM = (wTimeVar % 3600)/60;
- TSS = (wTimeVar % 3600)% 60;
- c='0'+THH/10;
- GUI_DispChar(c, 120,150);
- c='0'+THH%10;
- GUI_DispChar(c, 130,150);
- c='0'+TMM/10;
- GUI_DispChar(c, 150,150);
- c='0'+TMM%10;
- GUI_DispChar(c, 160,150);
- c='0'+TSS/10;
- GUI_DispChar(c, 180,150);c='0'+TSS%10;
- GUI_DispChar(c, 190,150);
- }
为得到图5所示的计时效果,其主程序为:
- int main(void)
- {
- CKCU_PeripClockConfig_TypeDef CKCUClock = {{0}};
- CKCUClock.Bit.BKP = 1;
- CKCU_PeripClockConfig(CKCUClock, ENABLE);
- #if (!LIBCFG_NO_PWRCU_TEST_REG)
- if (PWRCU_CheckReadyAccessed() != PWRCU_OK)
- {
- while (1);
- }
- #endif
- HT32F_DVB_LEDInit(HT_LED1);
- RETARGET_Configuration();
- NVIC_EnableIRQ(RTC_IRQn);
- RTC_Configuration();
- TimeReg = Time_Regulate();
- RTC_Cmd(ENABLE);
- app_tft_init();
- ili9341_init();
- ili9341_clear(RED);
- LCD_DrawLine(WHITE ,0, 50, 239, 50);
- LCD_DrawLine(WHITE,0, 290, 239, 290);
- BACK_COLOR=RED;
- POINT_COLOR=YELLOW;
- showimage();
- GUI_DispChar('R', 80,20);
- GUI_DispChar('T', 90,20);
- GUI_DispChar('C', 100,20);
- showhanzi16(115,16,0,RED,WHITE);
- showhanzi16(135,16,1,RED,WHITE);
- showhanzi16(155,16,2,RED,WHITE);
- showhanzi16(175,16,3,RED,WHITE);
- GUI_DispChar(':', 140,150);
- GUI_DispChar(':', 170,150);
- LCD_ShowString(60,294,"BY: jinglixixi");
- while (1)
- {
- if (gwTimeDisplay == 1)
- {
- Time_Display(RTC_GetCounter() + TimeReg);
- gwTimeDisplay = 0;
- }
- }
- }
图5 计时效果