/******************************************************************************* * @函数名称 Init_Timer_Cnt * @函数说明 给全局计数器清零 * @输入参数 无 * @输出参数 无 * @返回参数 无 *******************************************************************************/ void Init_Timer_Cnt(void) { Pile_State.Open_Flag = 1; Pile_State.Close_Flag = true; Pcak_Pile_State_All_Flag = 0; Can1_Rev_Flag = false; debug = 0; log_w = 0; Stitic_Time_Cnt = 0; Queue_Create(&Q_dir,Q_DIR); //Flash_Read_Inside(PROG_DATA_ADDR,Only_ID,12); //static uint8_t buf[20] = {'0','1','2','3','4','5','6','7','8','9','10','11'}; //at24cxx_write(0, buf, 12); eep_read(0, Only_ID, 12); /* read only ID */ /* RTC 判断时间是否合法 */ if(!RTC_IsTimeValid()) { RTC_DateTime_Type td = {0}; td.year = 2011; td.month = 11; td.day = 11; td.hour = 11; td.minute = 11; td.second = 11; RTC_SetTime(&td); } #if DEBUG RTC_DateTime_Type td = {0}; RTC_GetTime(&td); printf("first:%d-%d-%d %d:%d:%d\r\n", td.year, td.month, td.day, td.hour, td.minute, td.second); /* 设置闹钟在当前3秒后 */ /* RTC_GetTime(&td); td.second += 3; RTC_SetAlarm(&td); */ #endif }
int main(void) { DelayInit(); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); UART_QuickInit(UART0_RX_PB16_TX_PB17, 115200); /* 声明一个时间结构 */ RTC_DateTime_Type td = {0}; td.day = 20; td.hour = 23; td.minute = 59; td.second = 50; td.year = 2014; td.month = 11; printf("RTC alarm test\r\n"); RTC_QuickInit(); if(RTC_IsTimeValid() == false) { printf("bad time, reset!\r\n"); RTC_SetTime(&td); } /* 开启中断 */ RTC_CallbackInstall(RTC_ISR); RTC_ITDMAConfig(kRTC_IT_TimeAlarm, true); /* 设置闹钟在当前3秒后 */ RTC_GetTime(&td); td.second += 3; RTC_SetAlarm(&td); while(1) { /* 获得时间 */ RTC_GetTime(&td);//获得时间 printf("%d-%d-%d %d:%d:%d\r\n", td.year, td.month, td.day, td.hour, td.minute, td.second); GPIO_ToggleBit(HW_GPIOE, 6); DelayMs(1000); } }
int main(void) { DelayInit(); GPIO_QuickInit(HW_GPIOE, 6, kGPIO_Mode_OPP); UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200); /* 声明一个时间结构 */ RTC_DateTime_Type td = {0}; td.day = 20; td.hour = 23; td.minute = 59; td.second = 50; td.year = 2014; td.month = 11; printf("RTC clk out test, second pulse in on PE26\r\n"); RTC_QuickInit(); if(RTC_IsTimeValid() == false) { RTC_SetTime(&td); } /* 开启中断 */ RTC_CallbackInstall(RTC_ISR); RTC_ITDMAConfig(kRTC_IT_TimeAlarm, true); /* RTC_CLKOUT 输出 */ SIM->SOPT2 &= ~SIM_SOPT2_RTCCLKOUTSEL_MASK; PORT_PinMuxConfig(HW_GPIOE, 26, kPinAlt6); while(1) { RTC_GetTime(&td); printf("%d-%d-%d %d:%d:%d\r\n", td.year, td.month, td.day, td.hour, td.minute, td.second); GPIO_ToggleBit(HW_GPIOE, 6); DelayMs(1000); } }