/** * @brief Main program * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup file (startup_stm32f10x_md.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file */ /* Initialize LEDs mounted on STM32NUCLEO board --------------------------*/ STM_EVAL_LEDInit(LED2); /* Configure RTC */ RTC_Config(); while (1) { /* Show Time */ Show_Time(RTC_GetCounter()); } }
//厚仟扮寂方象 void Update_Time_Data(S_Show_Data *pDst, INT8U Area_No) { INT16U X, Y; S_Point P0; INT16U Width,Height; INT16U Min_Width, Min_Height; time_t CurSec; S_Time sTime; struct tm tTime, *ptm; Width = Get_Area_Width(Area_No); Height = Get_Area_Height(Area_No); Min_Width = Get_Time_Min_Width(Area_No); Min_Height = Get_Time_Min_Height(Area_No); //頁倦俶勣距屁扮餓 if(Prog_Status.File_Para[Area_No].Time_Para.Hour_Diff != 0 ||\ Prog_Status.File_Para[Area_No].Time_Para.Min_Diff != 0) { S_Time_2_tm(&Cur_Time, &tTime); CurSec = mktime(&tTime); if(Prog_Status.File_Para[Area_No].Time_Para.Diff_Flag EQ 0) CurSec += Prog_Status.File_Para[Area_No].Time_Para.Hour_Diff*3600 +\ Prog_Status.File_Para[Area_No].Time_Para.Min_Diff*60; else CurSec -= Prog_Status.File_Para[Area_No].Time_Para.Hour_Diff*3600 +\ Prog_Status.File_Para[Area_No].Time_Para.Min_Diff*60; ptm = localtime(&CurSec); tm_2_S_Time(ptm, &sTime); } else { mem_cpy(&sTime, &Cur_Time, sizeof(Cur_Time), &sTime, sizeof(sTime)); } if(Prog_Status.File_Para[Area_No].Time_Para.SmLineFlag == SLINE_MODE)//汽佩 { if(Width > Min_Width) { P0.X = (Width - Min_Width) / 2; } else { P0.X = 0; } /* if(Height > Prog_Status.File_Para[Area_No].Time_Para.Text_Height) P0.Y = (Height - Prog_Status.File_Para[Area_No].Time_Para.Text_Height)/2; else P0.Y = 0;//(Height - Prog_Status.File_Para[Area_No].Time_Para.Text_Height)/2; Copy_Filled_Rect(&Show_Data_Bak, Area_No, &P0, Prog_Status.File_Para[Area_No].Time_Para.Text_Width, Prog_Status.File_Para[Area_No].Time_Para.Text_Height, &Show_Data, &P0);//&Point); */ X = P0.X + Prog_Status.File_Para[Area_No].Time_Para.Text_Width; if(X > P0.X) X += Prog_Status.File_Para[Area_No].Time_Para.LineSpace;//Get_Font_Width(Prog_Status.File_Para[Area_No].Time_Para.); else X = P0.X; if(Prog_Status.File_Para[Area_No].Time_Para.Date_Type > 0)//俶勣�幣晩豚? { P0.X = X; if(Height > Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Date_Font)) P0.Y = (Height - Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Date_Font))/2; else P0.Y = 0; Show_Date(pDst, Area_No, P0.X, P0.Y, &sTime, \ Prog_Status.File_Para[Area_No].Time_Para.Date_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Date_Font, Prog_Status.File_Para[Area_No].Time_Para.Date_Color); X += Prog_Status.File_Para[Area_No].Time_Para.LineSpace + Get_DateStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Date_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Date_Font); } if(Prog_Status.File_Para[Area_No].Time_Para.Week_Type > 0)//俶勣佛豚? { P0.X = X; if(Height > Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Week_Font)) P0.Y = (Height - Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Week_Font))/2; else P0.Y = 0; Show_Week(pDst, Area_No, P0.X, P0.Y, &sTime, \ Prog_Status.File_Para[Area_No].Time_Para.Week_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Week_Font, Prog_Status.File_Para[Area_No].Time_Para.Week_Color); X += Prog_Status.File_Para[Area_No].Time_Para.LineSpace + Get_WeekStr_Type_Max_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Week_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Week_Font); } if(Prog_Status.File_Para[Area_No].Time_Para.Time_Type > 0)//俶勣扮寂? { P0.X = X; if(Height > Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Time_Font)) P0.Y = (Height - Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Time_Font))/2; else P0.Y = 0; Show_Time(pDst, Area_No, P0.X, P0.Y, &sTime, \ Prog_Status.File_Para[Area_No].Time_Para.Time_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Time_Font, Prog_Status.File_Para[Area_No].Time_Para.Time_Color); X += Prog_Status.File_Para[Area_No].Time_Para.LineSpace + Get_TimeStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Time_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Time_Font); } } else //謹佩 { if(Height > Min_Height) { P0.Y = (Height - Min_Height) / 2; } else { P0.Y = 0; } /* if(Width > Prog_Status.File_Para[Area_No].Time_Para.Text_Width) P0.X = (Width - Prog_Status.File_Para[Area_No].Time_Para.Text_Width)/2; else P0.X = 0;//(Height - Prog_Status.File_Para[Area_No].Time_Para.Text_Height)/2; Copy_Filled_Rect(&Show_Data_Bak, Area_No, &P0, Prog_Status.File_Para[Area_No].Time_Para.Text_Width, Prog_Status.File_Para[Area_No].Time_Para.Text_Height, &Show_Data, &P0);//&Point); */ Y = P0.Y + Prog_Status.File_Para[Area_No].Time_Para.Text_Height; if(Prog_Status.File_Para[Area_No].Time_Para.Text_Height > 0) Y += Prog_Status.File_Para[Area_No].Time_Para.LineSpace; if(Prog_Status.File_Para[Area_No].Time_Para.Date_Type > 0)//俶勣�幣晩豚? { P0.Y = Y; if(Width > Get_DateStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Date_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Date_Font)) P0.X = (Width - Get_DateStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Date_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Date_Font))/2; else P0.X = 0; Show_Date(pDst, Area_No, P0.X, P0.Y, &sTime, \ Prog_Status.File_Para[Area_No].Time_Para.Date_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Date_Font, Prog_Status.File_Para[Area_No].Time_Para.Date_Color); Y += Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Date_Font);//Get_DateStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Date_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Date_Font); Y += Prog_Status.File_Para[Area_No].Time_Para.LineSpace; } if(Prog_Status.File_Para[Area_No].Time_Para.Week_Type > 0)//俶勣佛豚? { P0.Y = Y; if(Width > Get_WeekStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Week_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Week_Font, Cur_Time.Time[T_WEEK])) P0.X = (Width - Get_WeekStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Week_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Week_Font, Cur_Time.Time[T_WEEK]))/2; else P0.X = 0; Show_Week(pDst, Area_No, P0.X, P0.Y, &sTime, \ Prog_Status.File_Para[Area_No].Time_Para.Week_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Week_Font, Prog_Status.File_Para[Area_No].Time_Para.Week_Color); Y += Get_Font_Height(Prog_Status.File_Para[Area_No].Time_Para.Week_Font);//Prog_Status.File_Para[Area_No].Time_Para.LineSpace + Get_WeekStr_Type_Max_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Week_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Week_Font); Y += Prog_Status.File_Para[Area_No].Time_Para.LineSpace; } if(Prog_Status.File_Para[Area_No].Time_Para.Time_Type > 0)//俶勣扮寂? { P0.Y = Y; if(Width > Get_TimeStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Time_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Time_Font)) P0.X = (Width - Get_TimeStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Time_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Time_Font))/2; else P0.X = 0; Show_Time(pDst, Area_No, P0.X, P0.Y, &sTime, \ Prog_Status.File_Para[Area_No].Time_Para.Time_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Time_Font, Prog_Status.File_Para[Area_No].Time_Para.Time_Color); //X += Prog_Status.File_Para[Area_No].Time_Para.LineSpace + Get_TimeStr_Pix_Width(Prog_Status.File_Para[Area_No].Time_Para.Time_Type - 1, Prog_Status.File_Para[Area_No].Time_Para.Time_Font); } } //Prog_Status.Area_Status[Area_No].Step = 100; //匯化�幣欺了�岷俊100% }