/***************************************************************************** ** Main Function main() ******************************************************************************/ int main (void) { /* SystemClockUpdate() updates the SystemFrequency variable */ SystemClockUpdate(); /* Initialize RTC module */ RTCInit(); local_time.RTC_Sec = 0; local_time.RTC_Min = 0; local_time.RTC_Hour = 0; local_time.RTC_Mday = 8; local_time.RTC_Wday = 3; local_time.RTC_Yday = 12; /* current date 07/12/2006 */ local_time.RTC_Mon = 7; local_time.RTC_Year = 2006; RTCSetTime( local_time ); /* Set local time */ alarm_time.RTC_Sec = 0; alarm_time.RTC_Min = 0; alarm_time.RTC_Hour = 0; alarm_time.RTC_Mday = 1; alarm_time.RTC_Wday = 0; alarm_time.RTC_Yday = 1; /* alarm date 01/01/2007 */ alarm_time.RTC_Mon = 1; alarm_time.RTC_Year = 2007; RTCSetAlarm( alarm_time ); /* set alarm time */ NVIC_EnableIRQ(RTC_IRQn); /* mask off alarm mask, turn on IMYEAR in the counter increment interrupt register */ RTCSetAlarmMask(AMRSEC|AMRMIN|AMRHOUR|AMRDOM|AMRDOW|AMRDOY|AMRMON|AMRYEAR); LPC_RTC->CIIR = IMMIN | IMYEAR; /* 2007/01/01/00:00:00 is the alarm on */ RTCStart(); while (1) { /* Loop forever */ current_time = RTCGetTime(); if ( alarm_on != 0 ) { alarm_on = 0; /* Get current time when alarm is on */ current_time = RTCGetTime(); } } }
/***************************************************************************** ** Main Function rtc_main() ******************************************************************************/ void rtc_main (void) { /* SystemClockUpdate() updates the SystemFrequency variable */ SystemCoreClockUpdate(); /* Initialize RTC module */ RTCInit(); GUIDEMO_ShowIntro("Real Time Clock", "Showing" "\nReal Time Clock" "\nBy Siddharth Kaul"); GUI_Clear(); GUI_SetBkColor(GUI_BLUE); GUI_SetColor(GUI_LIGHTRED); GUI_Clear(); GUI_SetFont(&GUI_Font24B_1); local_time.RTC_Sec = 0; local_time.RTC_Min = 0; local_time.RTC_Hour = 0; local_time.RTC_Mday = 8; local_time.RTC_Wday = 3; local_time.RTC_Yday = 12; /* current date 07/12/2006 */ local_time.RTC_Mon = 7; local_time.RTC_Year = 2006; RTCSetTime( local_time ); /* Set local time */ alarm_time.RTC_Sec = 0; alarm_time.RTC_Min = 0; alarm_time.RTC_Hour = 0; alarm_time.RTC_Mday = 1; alarm_time.RTC_Wday = 0; alarm_time.RTC_Yday = 1; /* alarm date 01/01/2007 */ alarm_time.RTC_Mon = 1; alarm_time.RTC_Year = 2007; RTCSetAlarm( alarm_time ); /* set alarm time */ NVIC_EnableIRQ(RTC_IRQn); /* mask off alarm mask, turn on IMYEAR in the counter increment interrupt register */ RTCSetAlarmMask(AMRSEC|AMRMIN|AMRHOUR|AMRDOM|AMRDOW|AMRDOY|AMRMON|AMRYEAR); LPC_RTC->CIIR = IMMIN | IMYEAR; /* 2007/01/01/00:00:00 is the alarm on */ RTCStart(); while (1) { /* Loop forever */ current_time = RTCGetTime(); { char rtc_sec,rtc_min,rtc_hour; rtc_sec = current_time.RTC_Sec; rtc_min = current_time.RTC_Min; rtc_hour = current_time.RTC_Hour; GUI_DispCharAt(rtc_sec, 10, 10); GUI_DispCharAt(rtc_min, 14, 20); GUI_DispCharAt(rtc_hour, 18, 30); } } }