/* ** RTC configuration function */ static void RTCSetupAndEnable(void) { /* Performing the System Clock configuration for RTC. */ RTCModuleClkConfig(); /* Disabling Write Protection for RTC registers.*/ RTCWriteProtectDisable(SOC_RTC_0_REGS); /* Selecting Internal Clock source for RTC. */ RTC32KClkSourceSelect(SOC_RTC_0_REGS, RTC_INTERNAL_CLK_SRC_SELECT); /* Enabling RTC to receive the Clock inputs. */ RTC32KClkClockControl(SOC_RTC_0_REGS, RTC_32KCLK_ENABLE); /* Enable the RTC module. */ RTCEnable(SOC_RTC_0_REGS); /* Dummy: Programming calendar information in the Calendar registers. */ RTCCalendarSet(SOC_RTC_0_REGS, 0x29111000 | RTC_DOTW_MON); /* Dummy: Programming the time information in the Time registers. */ RTCTimeSet(SOC_RTC_0_REGS, (0x08473100 | RTC_ANTE_MERIDIEM)); /* Set the 32KHz counter to run. */ RTCRun(SOC_RTC_0_REGS); /* Enabling RTC interrupts. Configuring RTC to interrupt every second.*/ RTCIntTimerEnable(SOC_RTC_0_REGS, RTC_INT_EVERY_SECOND); /* Enabling the system interrupt in AINTC for RTC. */ IntSystemEnable(SYS_INT_RTCINT); }
/* ** RTC configuration function */ static void RTCSetupAndEnable(void) { /* Performing the System Clock configuration for RTC. */ RTCModuleClkConfig(); /* Disabling Write Protection for RTC registers.*/ RTCWriteProtectDisable(RTC_INST_BASE); /* Selecting Internal Clock source for RTC. */ RTC32KClkSourceSelect(RTC_INST_BASE, RTC_INTERNAL_CLK_SRC_SELECT); /* Enabling RTC to receive the Clock inputs. */ RTC32KClkClockControl(RTC_INST_BASE, RTC_32KCLK_ENABLE); /* Enable the RTC module. */ RTCEnable(RTC_INST_BASE); /* Dummy: Programming calendar information in the Calendar registers. */ RTCCalendarSet(RTC_INST_BASE, RTC_CAL_VAL_DUMMY); /* Dummy: Programming the time information in the Time registers. */ RTCTimeSet(RTC_INST_BASE, RTC_TIME_VAL_DUMMY); /* Set the 32KHz counter to run. */ RTCRun(RTC_INST_BASE); /* Enabling RTC interrupts. Configuring RTC to interrupt every second.*/ RTCIntTimerEnable(RTC_INST_BASE, RTC_INT_EVERY_SECOND); /* Enabling the system interrupt in AINTC for RTC. */ IntSystemEnable(RTC_INT_NUM); }
void main(void) { //unsigned long ulTmp = 0; /********************** Configure System clock *************************/ SysCtlClockSet(100000000, SYSCTL_OSC_INT | SYSCTL_XTAL_12_MHZ); SysCtlDelay(TICK_SLOW); // Configure LED(PC3) pin SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); xGPIOSPinTypeGPIOOutput(PC3); // Turn off LED GPIOPinClr(GPIOC_BASE, GPIO_PIN_3); // Disable NVIC RTC interrupt xIntDisable(xINT_RTC); RTCDisable(); RTCIntCallbackInit(RTCHandler); // Enable RTC second increment interrupt. // Enable RTC minute interrupt. RTCIntCfg( INT_SEC_EN | INT_MIN_DIS | INT_HOUR_DIS | INT_DOM_DIS | INT_DOW_DIS | INT_DOY_DIS | INT_MON_DIS | INT_YEAR_DIS | INT_ALARM_SEC_DIS | INT_ALARM_MIN_EN | INT_ALARM_HOUR_DIS | INT_ALARM_DOM_DIS | INT_ALARM_DOW_DIS | INT_ALARM_DOY_DIS | INT_ALARM_MON_DIS | INT_ALARM_YEAR_DIS ); RTCTimeSet(RTC_TIMETYPE_SECOND, 0); RTCTimeSet(RTC_TIMETYPE_MINUTE, 0); RTCTimeSet(RTC_TIMETYPE_HOUR, 0); RTCTimeSet(RTC_TIMETYPE_DAYOFWEEK, 0); RTCTimeSet(RTC_TIMETYPE_DAYOFMONTH, 0); RTCTimeSet(RTC_TIMETYPE_DAYOFYEAR, 0); RTCTimeSet(RTC_TIMETYPE_MONTH, 0); RTCTimeSet(RTC_TIMETYPE_YEAR, 0); RTCAlarmSet(RTC_TIMETYPE_SECOND, 0); RTCAlarmSet(RTC_TIMETYPE_MINUTE, 1); RTCAlarmSet(RTC_TIMETYPE_HOUR, 0); RTCAlarmSet(RTC_TIMETYPE_DAYOFWEEK, 0); RTCAlarmSet(RTC_TIMETYPE_DAYOFMONTH, 0); RTCAlarmSet(RTC_TIMETYPE_DAYOFYEAR, 0); RTCAlarmSet(RTC_TIMETYPE_MONTH, 0); RTCAlarmSet(RTC_TIMETYPE_YEAR, 0); RTCEnable(); RTCCounterReset(); xIntEnable(xINT_RTC); while (1) { ; // DoNothing } }
/* ** Initializes the RTC peripheral */ void RtcInit(void) { /* Disabling Write Protection for RTC registers.*/ RTCWriteProtectDisable(SOC_RTC_0_REGS); /* Selecting External Clock source for RTC. */ RTC32KClkSourceSelect(SOC_RTC_0_REGS, RTC_EXTERNAL_CLK_SRC_SELECT); /* Enabling RTC to receive the Clock inputs. */ RTC32KClkClockControl(SOC_RTC_0_REGS, RTC_32KCLK_ENABLE); RTCEnable(SOC_RTC_0_REGS); }