void rt_hw_rtc_init(void) { rtc.type = RT_Device_Class_RTC; RTC_Init(LPC_RTC); if (RTC_ReadGPREG(LPC_RTC,0) != FIRST_DATA) { rt_kprintf("rtc is not configured\n"); rt_kprintf("please configure with set_date and set_time\n"); } else { } RTC_Cmd(LPC_RTC,ENABLE); /* register rtc device */ rtc.init = RT_NULL; rtc.open = rt_rtc_open; rtc.close = RT_NULL; rtc.read = rt_rtc_read; rtc.write = RT_NULL; rtc.control = rt_rtc_control; /* no private */ rtc.user_data = RT_NULL; rt_device_register(&rtc, "rtc", RT_DEVICE_FLAG_RDWR); #ifdef RT_USING_FINSH { extern void list_date(void); list_date(); } #endif return; }
void RTC_time_Init(void){ // _DBG("{"); // Init RTC module RTC_Init(LPC_RTC); // Disable RTC interrupt NVIC_DisableIRQ(RTC_IRQn); NVIC_SetPriority(RTC_IRQn, 8); // set according to main.c RTC_Cmd(LPC_RTC, ENABLE); update_time(); // RTC_CalibCounterCmd(LPC_RTC, DISABLE); // RTC_WriteGPREG(LPC_RTC, 4, 0x55);//force clock set //Set time if no data in GPREG if (!(RTC_ReadGPREG(LPC_RTC, 4)==(0xaa))) { // xprintf(INFO "Setting time to" " (%s:%d)\n",_F_,_L_);//_DBG("[INFO]-Set time");_DBG(" (");_DBG(__FILE__);_DBG(":");_DBD16(__LINE__);_DBG(" (");_DBG(__FILE__);_DBG(":");_DBD16(__LINE__);_DBG(")\r\n"); xprintf(INFO "Setting time to %s %s" " (%s:%d)\n",__DATE__,__TIME__,_F_,_L_);//_DBG("[INFO]-Set time");_DBG(" (");_DBG(__FILE__);_DBG(":");_DBD16(__LINE__);_DBG(" (");_DBG(__FILE__);_DBG(":");_DBD16(__LINE__);_DBG(")\r\n"); // delay_ms(1000); // _DBG("[INFO]-__DATE__=");_DBG(__DATE__);_DBG(", __TIME__=");_DBG(__TIME__);_DBG(" (");_DBG(__FILE__);_DBG(":");_DBD16(__LINE__);_DBG(")\r\n"); // Enable rtc (starts increase the tick counter and second counter register) RTC_ResetClockTickCounter(LPC_RTC); // yyyy mm dd Dom Dow ss mm hh st // RTC_time_SetTime(2012, 6, 11, 1, 163, 10, 50, 20, 00); RTC_set_default_time_to_compiled(); RTC_WriteGPREG(LPC_RTC, 4, 0xaa); } ///* yearlyCheck(); weeklyCheck(); dailyCheck(); hourlyCheck(); minutelyCheck(); secondlyCheck(); RTC_print_time(); //*/ // time_t seconds; // seconds = time (NULL); // uint8_t test[56]; // xprintf ("{testing} %ld hours since January 1, 1970\r\n", Getunix()); // scanf (test); // Enable 1 sec interrupt RTC_CntIncrIntConfig (LPC_RTC, RTC_TIMETYPE_SECOND, ENABLE); // Enable RTC interrupt NVIC_EnableIRQ(RTC_IRQn); // _DBG("."); // _DBG("}"); }