- #include "SmartM_M0.h"
 
 - bool flag = 0; //中断标志位
 
 - /****************************************
 
 - *函数名称:TMR2Init
 
 - *输    入:无
 
 - *输    出:无
 
 - *功    能:定时器2初始化
 
 - ******************************************/
 
 - VOID TMR2Init(VOID)
 
 - {
 
 -     PROTECT_REG
 
 -  (
 
 -   /* 使能TMR2时钟源 */
 
 -      APBCLK |= TMR2_CLKEN;
 
 -   /* 选择TMR2时钟源为外部晶振12MHz */ 
 
 -   CLKSEL1 = (CLKSEL1 & (~TM2_CLK)) | TM1_12M;  
 
 -   /* 复位TMR2 */
 
 -   IPRSTC2 |=  TMR2_RST;
 
 -   IPRSTC2 &= ~TMR2_RST; 
 
 -   /* 选择TMR2的工作模式为周期模式*/ 
 
 -   TCSR2 &= ~TMR_MODE;
 
 -   TCSR2 |=  MODE_PERIOD;  
 
 -   /* 溢出周期 = (Period of timer clock input) * (8-bit Prescale + 1) * (24-bit TCMP)*/
 
 -   /* 溢出周期 = (1/12MHz) * (0 + 1) * (12000*500)=500ms (0.5S)*/
 
 -   TCSR2  = TCSR2 & 0xFFFFFF00;  // 设置预分频值 [0~255]
 
 -   TCMPR2 = 12000*500;        // 设置比较值 [0~16777215]
 
 -   TCSR2 |= TMR_IE;     //使能TMR0中断
 
 -   NVIC_ISER |= TMR2_INT; 
 
 -   TCSR2 |= CRST;      //复位TMR0计数器    
 
 -   TCSR2 |= CEN;      //使能TMR0
 
 -  )
 
 - }
 
 - /****************************************
 
 - *函数名称:main
 
 - *输    入:无
 
 - *输    出:无
 
 - *功    能:函数主体
 
 - ******************************************/
 
 - INT32 main(VOID)
 
 - {
 
 -   u8 i =0;
 
 -      PROTECT_REG            //ISP下载时保护FLASH存储器
 
 -   (       
 
 -    PWRCON |= XTL12M_EN;      //默认时钟源为外部晶振
 
 -    while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz时钟稳定      
 
 -    CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //设置外部晶振为系统时钟 
 
 -    P2_PMD = 0x5555;       //P2口设置为输出模式
 
 -       P2_DOUT= 0x00;        //P2口输出低电平
 
 -   )
 
 -   TMR2Init();
 
 -     while(1)
 
 -   {
 
 -    if(flag)
 
 -   {
 
 -    flag = 0;
 
 -    i++;
 
 -   }
 
 -   if(i>7)
 
 -   {
 
 -    i = 0;
 
 -   }
 
 -   P2_DOUT = 1UL<<i;         //P2口输出相应的电平
 
 -   }
 
 - }
 
 - /****************************************
 
 - *函数名称:TMR2_IRQHandler
 
 - *输    入:无
 
 - *输    出:无
 
 - *功    能:定时器2中断服务函数
 
 - ******************************************/
 
 - VOID TMR2_IRQHandler(VOID)
 
 - {
 
 -  /* 清除TMR1中断标志位 */
 
 -  TISR2 |= TMR_TIF;
 
 -  flag = 1;
 
 - }
 
  
 
  |