MSP單片機(jī)實(shí)現(xiàn)P3.0方波輸出的設(shè)計(jì)
一、利用定時(shí)器定時(shí)功能,實(shí)現(xiàn)定時(shí)器單個(gè)溢出中斷,實(shí)現(xiàn) P3.0 方波輸出
#include “cc430x613x.h”
void main()
{
WDTCTL = WDTPW + WDTHOLD; // 停止看門狗定時(shí)器
P3DIR |= 0x04; // P3口初始化,設(shè)置為輸出模式
TA0CCR0 = 32768; // 定義中斷計(jì)數(shù)周期1s,時(shí)鐘頻率為32.768MHZ,32768 / 32768 = 1s
TA0CCTL0 = CCIE; // TA0CCR0捕獲/比較中斷寄存器中斷使能
TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK時(shí)鐘源 MC_1,增計(jì)數(shù)模式
_BIS_SR(LPM3_bits + GIE); // 進(jìn)入LPM3低功耗模式,開啟總中斷
}
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A(void) // 定時(shí)器中斷觸發(fā),P3輸出口異或,電平翻轉(zhuǎn)
{
P3OUT ^= 0x04;
}
二、利用定時(shí)器定時(shí)功能,實(shí)現(xiàn)定時(shí)器多個(gè)溢出,對(duì)應(yīng)產(chǎn)生多個(gè)中斷,實(shí)現(xiàn) P3.0 輸出
#include “cc430x613x.h”
void main()
{
WDTCTL = WDTPW + WDTHOLD; // 停止看門狗定時(shí)器
P3DIR |= 0x04; // P3口初始化,設(shè)置為輸出模式
TA0CCR0 = 32768; // 定義中斷計(jì)數(shù)周期1s,時(shí)鐘頻率為32.768MHZ,32768 / 32768 = 1s
TA0CCTL0 = CCIE; // TA0CCR0捕獲/比較中斷寄存器中斷使能
TA0CCR1 = 3276; // 定義中斷溢出周期100ms
TA0CCTL1 = CCIE; // TA0CCR0捕獲/比較中斷寄存器中斷使能
TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK時(shí)鐘源 MC_1,增計(jì)數(shù)模式
_BIS_SR(LPM3_bits + GIE); // 進(jìn)入LPM3低功耗模式,開啟總中斷
}
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A(void) // 1s溢出中斷
{
P3OUT = ~0x04;
}
#pragma vector = TIMER0_A1_VECTOR
__interrupt void Timer_A1(void) // 100ms溢出中斷
{
switch(TA0IV)
{
case 2:P3OUT = 0x04;break;
case 4:break;
case 10:break;
}
}