|
#include <msp430.h> //函數(shù)庫
int sum=0; //全局變量
int main(void)
{
volatile unsigned int i; //局部變量
//設(shè)置timerA相關(guān)參數(shù)
WDTCTL = WDTPW+WDTHOLD; // 關(guān)閉看門狗
P1DIR |= BIT2; // 將P1.2設(shè)置為輸出端口,驗(yàn)證狀態(tài)
P2DIR |= BIT0; //P2.0輸出PWM波
TA0CCTL1 = OUTMOD_7; //將輸出模式選擇為模式7
TA0CTL = TASSEL_1 + MC_1 + TACLR ; //選擇ACLK時(shí)鐘源,timerA計(jì)數(shù)模式選擇up模式,計(jì)數(shù)到TA0CCR0,重置timerA計(jì)數(shù)器
TA1CCTL1 = OUTMOD_7;
TA1CTL = TASSEL_1 + MC_1 +TACLR ;
P1REN |= BIT7; // 使能端口1.7
P1OUT |= BIT7; // 選擇下拉模式
P1IES |= BIT7; // 1.7端口中斷觸發(fā)沿選擇下降沿,高到低觸發(fā)
P1IFG &= ~BIT7; // 1.7端口中斷寄存器清零
P1IE |= BIT7; // 1.7端口中斷使能
__bis_SR_register(GIE); //將GIE置1,打開全局中斷使能
while(1) // 采用switch,每一個(gè)case值對應(yīng)一個(gè)狀態(tài)
{
switch (sum)
{
case 0:
P1OUT &= ~BIT2; //初始狀態(tài)為低功耗狀態(tài)
TA0CCR1 = 0;
__bis_SR_register(LPM3_bits); //將LPM3置1,使系統(tǒng)進(jìn)入低功耗
break; //跳出switch函數(shù)
case 1: //選系統(tǒng)的默認(rèn)時(shí)鐘,頻率為1MHZ。
P1OUT &= ~BIT2; //狀態(tài)1要求:轉(zhuǎn)到—60°,900微秒,設(shè)置的為1000微秒,時(shí)鐘頻率為32768Hz
TA0CCR0 = 20000; //驗(yàn)證進(jìn)入狀態(tài)1
TA0CCR1 = 10000;
TA1CCR0 = 100; //輸出PWM波周期
TA1CCR1 = 34; 占空比
P1DIR |=BIT2;
P1SEL |=BIT2;
P2DIR |=BIT0;
P2SEL |=BIT0;
break;
case 2:
P1OUT &= ~BIT2; //狀態(tài)2要求:轉(zhuǎn)到0°。1520微秒
TA0CCR0 = 20000;
TA0CCR1 = 5000;
TA1CCR0 = 100;
TA1CCR1 = 50;
P1DIR |=BIT2;
P1SEL |=BIT2;
P2DIR |=BIT0;
P2SEL |=BIT0;
break;
case 3: //時(shí)鐘為輔助時(shí)鐘ACLK,頻率為32768HZ
//P1OUT &= ~BIT2; //狀態(tài)3要求:轉(zhuǎn)到60° 2100微秒
TA0CCR0 = 20000;
TA0CCR1 = 800;
TA1CCR0 = 100;
TA1CCR1 = 66;
P1DIR |=BIT2;
P1SEL |=BIT2; //選擇1.2端口的復(fù)用功能,使之能夠?qū)崿F(xiàn)亮和滅
P2DIR |=BIT0;
P2SEL |=BIT0;
break;
}
if(sum>3) //當(dāng)sum的值超過3時(shí),要讓sum減3,重新進(jìn)入循環(huán)
{
sum=sum-3;
}
}
}
//采用S1作為按鍵實(shí)現(xiàn)
#pragma vector=PORT1_VECTOR //端口p1的中斷函數(shù)
__interrupt void Port_1(void)
{
unsigned int push_key =0;
push_key == P1IFG & (P1IN);
__delay_cycles(20000); //精確時(shí)間延遲,乘以MCLK時(shí)鐘周期,防止抖動
if( push_key == (P1IN & BIT7))
{
__low_power_mode_off_on_exit(); //SR寄存器置0,退出低功耗
sum=sum+1; // 按下p1.7,sum加1,周期變化一次
}
P1IFG &= ~BIT7; // p1.7中斷重置
}
|
評分
-
查看全部評分
|