新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430F149 TIMER_A(一)——16位定時計數

        MSP430F149 TIMER_A(一)——16位定時計數

        作者: 時間:2016-11-24 來源:網絡 收藏
        TIMER_A有四個可選時鐘源,為了方便一般選擇ACLK和SMCLK,經過分頻器產生一個時基,其結構圖如下:

        本文引用地址:http://www.104case.com/article/201611/320876.htm



        TIMER_A有三種定時/計數方式:

        (1).增計數模式:計數周期:TAR從0增加到TACCR0,



        (2).連續計數模式:計數周期:TAR從0增加到0xffff,



        (3).增減計數模式:計數周期:TAR從0增加到TACCR0然后再從TACCR0減到0



        由上圖可見TIMER_A的中斷標志有兩個,分別是TAIFG和CCIFG。TACTL中的TAIE允許產生TAIFG中斷標志,中斷入口是TIMERA_1 VECTOR即0FFEAh,此入口有三個中斷源,由TAIV的值決定。

        在IAR中,進入中斷服務的方式如下:

        #pragma vector=中斷向量的入口地址

        __interrupt void函數名(類型)

        比如:

        #pragma vector=0x14
        __interrupt void my_handler(void);
        TIMERA0_VECTOR是單中斷源的,因此不需要判斷
        #pragma vector=TIMERA0_VECTOR
        __interrupt void Timer_A0 (void)
        {
        P4OUT^=BIT0;
        }
        既然TIMERA1_VECTOR由三種中斷源,則需要判斷,例子如下
        #pragma vector=TIMERA1_VECTOR
        __interrupt void Timer_A1 (void)
        {
        switch(TAIV)
        {
        case 0x02:break;
        case 0x04:break;
        case 0x0a:P4OUT^=BIT0;break;
        }
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宁都县| 峨边| 昭苏县| 阿瓦提县| 莒南县| 古田县| 武功县| 安图县| 科技| 定远县| 吉隆县| 诸城市| 延安市| 青龙| 通化市| 炎陵县| 陇南市| 兴仁县| 蓬溪县| 临沂市| 乐业县| 麻栗坡县| 洱源县| 冀州市| 通州区| 华坪县| 高邮市| 汽车| 淮阳县| 慈溪市| 论坛| 佛山市| 南京市| 永福县| 涿州市| 汉源县| 镇雄县| 麻阳| 新巴尔虎左旗| 石狮市| 崇左市|