<address id="tnvjh"></address>
    <form id="tnvjh"><listing id="tnvjh"><meter id="tnvjh"></meter></listing></form>

      <form id="tnvjh"></form>

      <address id="tnvjh"><th id="tnvjh"></th></address>

        專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        新唐M051定時器2測試程序

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年09月01日   【字體:

        以下是M051單片機的定時器2測試程序 成功。!

        #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;
        }
        關閉窗口
        和老头做爰很舒服,JK白丝裤袜开裆自慰喷水,在线天堂www在线...中文

          <address id="tnvjh"></address>
          <form id="tnvjh"><listing id="tnvjh"><meter id="tnvjh"></meter></listing></form>

            <form id="tnvjh"></form>

            <address id="tnvjh"><th id="tnvjh"></th></address>