<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

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

        TMS320F2812外設例程系列之CpuTimer

        作者:佚名   來源:不詳   點擊數:  更新時間:2014年08月17日   【字體:

         

         
        //#####################################################################
        //文件:  Example_281xCpuTimer.c
        //說明: 定時器應用實例
        //#####################################################################
        #include "DSP281x_Device.h"   
        #include "DSP281x_Examples.h"  
        //定時器中斷服務程序聲明
        interrupt void cpu_timer0_isr(void);
        //主程序
        void main(void)                
        {   
            //Step 1. 初始化系統控制
            InitSysCtrl();               //初始化系統控制寄存器、PLL、看門狗和時種
            //Step 2. 初始化 GPIO
            //InitGpio();               //本例中沒有使用,跳過  
            //Step 3. 清除所有中斷,初始化PIE中斷向量表
            DINT;                     //關CPU中斷
            InitPieCtrl();
            //初始化PIE控制寄存器組到默認狀態,這個子程序在DSP281x_PieCtrl.c
            IER = 0x0000;             //禁止所有CPU中斷
            IFR = 0x0000;             //清除所有CPU中斷標志位
            InitPieVectTable();
            //初始化PIE中斷向量表,這個子程序在DSP281x_PieVect.c
            EALLOW;                 //關保護  
            PieVectTable.TINT0 = &cpu_timer0_isr;   //中斷向量指向中斷服務程序
            EDIS;                     //開保護
            //Step 4. 初始化所有片內外設
            //InitPeripherals();   //沒有使用,跳過,在DSP281x_InitPeripherals.c
            InitCpuTimers();     //初始化定時器寄存器組
            ConfigCpuTimer(&CpuTimer0, 100, 1000000);
            //配置CPU-Timer 0 中斷周期為1s,100MHz CPU頻率,可以根據頻率改變實參
            StartCpuTimer0();       //啟動定時器 0
            //Step 5. 用戶代碼,打開中斷
            IER |= M_INT1;           //使能第一組PIE中斷
            PieCtrlRegs.PIEIER1.bit.INTx7 = 1; //使能第一組的中斷7
            EINT;                     //使能全局中斷
            ERTM;                     //使能DEBUG中斷
            //Step 6. 空循環,等待中斷
            for(;;);
        //中斷服務子程序
        interrupt void cpu_timer0_isr(void)
        {
            CpuTimer0.InterruptCount++;
            //用戶可以在此處添加自己的代碼,以完成某些特定的功能 
            PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
            //響應這個中斷,以便CPU繼續接收第1組中斷
        }
         
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮