新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430G2553定時器中斷實驗

        MSP430G2553定時器中斷實驗

        作者: 時間:2016-11-28 來源:網絡 收藏
        ///////////////////////////////////////////////////////////////////

        //msp430G2553的定時器中斷控制LED每秒鐘進行亮熄變化

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

        ///////////////////////////////////////////////////////////////////

        #include
        void led_init();
        void timer_init();
        void delay(int);
        //----------------------------------
        void led_init()
        {
        P1DIR|=(1<<6); //P1.6為LED
        }
        //--------------------------
        void timer_init()
        {
        TACCR0 =2500;//計到2500,約20ms
        TACTL = TASSEL_2+ID_3+MC_1+TACLR;//設置TIMERA的時鐘源為SMCLK(1M),8分頻后(125K),計數(shù)模式為up,到CCR0再自動從0開始計數(shù)
        TACCTL0 |= CCIE;// CCR0 interrupt enabled
        }
        //--------定時器中斷函數(shù)------------
        #pragma vector=TIMER0_A0_VECTOR
        __interrupt void Timer_A(void)
        {
        //TACCTL0&=~ CCIE; //關中斷
        static int cc=0;
        cc+=1;
        if(cc==50)//1s=1000ms=20*50 定時
        {
        P1OUT^=(1<<6); //P1.6 LED取反
        cc=0;
        }
        }
        //--------延時函數(shù) -------
        void delay(int n)
        {
        unsigned char temp = 0;
        unsigned int i=0;
        for(i=0;i
        {
        for(temp=0;temp<33;temp++);
        }
        }
        //************主函數(shù)***************************
        void main()
        {

        WDTCTL = WDTPW + WDTHOLD;// Stop WDT
        BCSCTL1 = CALBC1_1MHZ;
        DCOCTL = CALDCO_1MHZ;

        led_init();
        timer_init();
        _BIS_SR(GIE);//開總中斷
        for(;;)
        {
        ;
        }
        }



        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 当阳市| 开远市| 陆丰市| 华坪县| 海晏县| 基隆市| 宜春市| 七台河市| 同仁县| 平南县| 壤塘县| 蒲江县| 称多县| 沧源| 突泉县| 天津市| 孝昌县| 汶上县| 重庆市| 淅川县| 中阳县| 黄龙县| 新干县| 中宁县| 钦州市| 澳门| 平定县| 青河县| 金川县| 柏乡县| 金寨县| 永顺县| 旬邑县| 朝阳区| 兴国县| 琼海市| 东兴市| 景泰县| 米林县| 东源县| 章丘市|