MSP430之Timer_A之典型應用——PWM 作者: 時間:2016-11-25 來源:網(wǎng)絡 加入技術交流群 掃碼加入和技術大咖面對面交流海量資料庫查詢 收藏 程序一:#include"msp430x14x.h"voidmain(void){WDTCTL=WDTPW+WDTHOLD;//關看門狗TACTL=TASSEL0+TACLR+MC0;//ACLK為時鐘源,清TAR,增計數(shù)模式TACCR0=512-1;//設定PWM周期TACCTL1=OUTMOD_7;//CCR1輸出為reset/set模式TACCR1=384;//CCR1的PWM占空比設定TACCTL2=OUTMOD_7;//CCR2輸出為reset/set模式TACCR2=128;//CCR2的PWM占空比設定P1DIR|=0X0c;//P1.2、P1.3輸出,對應TA1,TA2P1SEL|=0X0c;//TA1,TA2輸出功能while(1);}功能:P1.2,P1.3分別輸出TA1,TA2的pwm信號,通過杜邦線接兩個led,可觀察到不同占空比的pwm效果。一個亮些,一個暗些。程序二:voidmain(void){//StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;TBCTL=TBSSEL_2+TBCLR+MC0;//SMCLK(800K),增模式TBCCTL1=OUTMOD_3;//置位/復位模式TBCCR0=8000;//PWM周期TBCCR1=0;//PWM的低電平時間P4DIR=0X02;//P4.1輸出,P4.1受TBCCR1控制P4SEL=0X02;//P4.1作為定時器B的PWM輸出P1DIR=0XFC;//P1.0P1.1輸入P1IE=0X03;//允許中斷P1.1和P1.2P1IES=0XFC;//上升沿中斷_EINT();while(1);}#pragmavector=PORT1_VECTOR__interruptvoidPORT_INTERRUPT(void){uinti;for(i=8000;i>0;i--);//延時,去抖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;//消除按鍵中斷標志}功能:通過P4.1外接一個led燈430板子的key1,key2調節(jié)亮度。一個增,一個減
評論