在创建工程的同时也创建了一个RTC的1S中断、一个串口程序和一个闪灯的任务,当然为了不至于单调,我加了另外二个颜色的灯来生成二种颜色的切换闪烁,下面是源程序:
int main (void)
{
uint8_t u8Ch;
ICS_ConfigType sICSConfig;
RTC_ConfigType sRTCConfig;
RTC_ConfigType *pRTCConfig = &sRTCConfig;
UART_ConfigType sConfig;
/* Perform processor initialization */
sysinit();
printf("\nRunning the LED project.\n");
LED0_Init(); /*! RED Light */
LED1_Init(); /*! Green */
LED2_Init(); /*! Blue */
// LED0_Off();
// LED1_Off();
LED2_Off();
/* configure RTC to 1Hz interrupt frequency */
pRTCConfig->u16ModuloValue = 9;
pRTCConfig->bInterruptEn = RTC_INTERRUPT_ENABLE; /* enable interrupt */
pRTCConfig->bClockSource = RTC_CLKSRC_1KHZ; /*clock source is 1khz*/
pRTCConfig->bClockPresaler = RTC_CLK_PRESCALER_100; /*prescaler is 100*/
RTC_SetCallback(RTC_Task);
RTC_Init(pRTCConfig);
printf("\nIt is in FEE mode now,");
UART_WaitTxComplete(TERM_PORT);
/* switch clock mode from FEE to FEI */
sICSConfig.u32ClkFreq = 32; /* NOTE: use value 32 for 31.25KHz to 39.0625KHz of internal IRC */
ICS_SwitchMode(FEE,FEI, &sICSConfig);
/* reinitialize the UART for terminal due to bus clock changed to 20MHz*/
sConfig.u32SysClkHz = 20000000L;
sConfig.u32Baudrate = UART_PRINT_BITRATE;
UART_Init (TERM_PORT, &sConfig);
printf("switch to FEI mode.\n");
OSC_Enable();
printf("Please enter any character which will echo...\n");
/* echo chars received from terminal */
while(1)
{
u8Ch = UART_GetChar(TERM_PORT);
UART_PutChar(TERM_PORT, u8Ch);
}
}