剛剛開(kāi)始學(xué)習(xí)msp430g2553,板子是launchpad,今天嘗試著寫(xiě)了一個(gè)定時(shí)器的程序,程序的功能是利用Timer_A定時(shí)一秒使LED燈閃爍,程序如下#include <msp430g2553.h>
void main(void)
{
WDTCTL=WDTPW+WDTHOLD; //關(guān)閉看門(mén)狗
BCSCTL1|=DIVA_0;
BCSCTL3|=LFXT1S_0;
P1DIR|=BIT0; //設(shè)置P1.0為輸出管腳。
P1OUT&=~BIT0;
TACTL|=TASSEL_1+ID_0+MC_1; //選擇ACLK為時(shí)鐘源,0分頻,計(jì)數(shù)器清零,增計(jì)數(shù)器模式。
TACTL&=~TAIFG; //清中斷標(biāo)志位
TACCTL0|=CCIE;
TACCR0=32768-1; //定時(shí)器計(jì)數(shù)寄存器初值,定時(shí)時(shí)間為1秒,初值是32767而不是32768切記
//TACTL|=TAIE; //運(yùn)行TA溢出中斷
_EINT(); //允許總中斷
while(1);
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TA_ISR(void)
{
P1OUT^=BIT0;
}
這個(gè)程序工作是正常的,但是在調(diào)試過(guò)程中發(fā)現(xiàn)了幾個(gè)問(wèn)題,問(wèn)題一:如果不加 TACCTL0|=CCIE;只有TACTL|=TAIE; 則進(jìn)不去中斷,難道定時(shí)器的溢出不能產(chǎn)生中斷嗎?問(wèn)題二:如果TACCTL0|=CCIE;TACTL|=TAIE; 同時(shí)存在則LED燈很暗,不知道什么原因。希望各位多多指教,解答小弟心中的疑惑。
|
|