示例#1
0
/**
  * @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());
  }
}
示例#2
0
//厚仟扮寂方象
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%
}