新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430之Timer_A之典型應(yīng)用——PWM

        MSP430之Timer_A之典型應(yīng)用——PWM

        作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
        程序一:
        #include"msp430x14x.h"
        voidmain(void)
        {
        WDTCTL=WDTPW+WDTHOLD;//關(guān)看門狗
        TACTL=TASSEL0+TACLR+MC0;//ACLK為時(shí)鐘源,清TAR,增計(jì)數(shù)模
        TACCR0=512-1;//設(shè)定PWM周期
        TACCTL1=OUTMOD_7;//CCR1輸出為reset/set模式
        TACCR1=384;//CCR1的PWM占空比設(shè)定
        TACCTL2=OUTMOD_7;//CCR2輸出為reset/set模式
        TACCR2=128;//CCR2的PWM占空比設(shè)定
        P1DIR|=0X0c;//P1.2、P1.3輸出,對(duì)應(yīng)TA1,TA2
        P1SEL|=0X0c;//TA1,TA2輸出功能
        while(1);
        }
        功能:P1.2,P1.3分別輸出TA1,TA2的pwm信號(hào),通過杜邦線接兩個(gè)led,
        可觀察到不同占空比的pwm效果。一個(gè)亮些,一個(gè)暗些。

        程序二:

        voidmain(void)
        {
        //Stopwatchdogtimertopreventtimeoutreset
        WDTCTL=WDTPW+WDTHOLD;

        TBCTL=TBSSEL_2+TBCLR+MC0;//SMCLK(800K),增模式
        TBCCTL1=OUTMOD_3;//置位/復(fù)位模式
        TBCCR0=8000;//PWM周期
        TBCCR1=0;//PWM的低電平時(shí)間

        P4DIR=0X02;//P4.1輸出,P4.1受TBCCR1控制
        P4SEL=0X02;//P4.1作為定時(shí)器B的PWM輸出
        P1DIR=0XFC;//P1.0P1.1輸入
        P1IE=0X03;//允許中斷P1.1和P1.2
        P1IES=0XFC;//上升沿中斷

        _EINT();
        while(1);
        }

        #pragmavector=PORT1_VECTOR
        __interruptvoidPORT_INTERRUPT(void)
        {
        uinti;
        for(i=8000;i>0;i--);//延時(shí),去抖
        if(P1IFG&BIT0)
        {
        if(TBCCR1>=8000)
        {
        TBCCR1=1000;
        }
        else
        {
        TBCCR1=TBCCR1+1000;
        }
        }
        if(P1IFG&BIT1)
        {
        if(TBCCR1<1000)
        {
        TBCCR1=8000;
        }
        else
        {
        TBCCR1=TBCCR1-1000;
        }
        }
        P1IFG=0X00;//消除按鍵中斷標(biāo)志
        }
        功能:通過P4.1外接一個(gè)led燈
        430板子的key1,key2調(diào)節(jié)亮度。一個(gè)增,一個(gè)減


        關(guān)鍵詞: MSP430Timer_APW

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 西城区| 家居| 贵溪市| 原平市| 广丰县| 镇巴县| 寿阳县| 调兵山市| 石渠县| 贞丰县| 乌拉特后旗| 敖汉旗| 柳河县| 白城市| 五寨县| 宕昌县| 达尔| 通海县| 盐亭县| 平江县| 怀化市| 呼伦贝尔市| 静安区| 兴和县| 旬阳县| 龙岩市| 合阳县| 呼伦贝尔市| 新平| 洛扎县| 肇州县| 通城县| 汾阳市| 巫山县| 泾阳县| 厦门市| 德兴市| 宁阳县| 郸城县| 沈丘县| 云浮市|