找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4150|回復(fù): 2
收起左側(cè)

msp430g2553定時(shí)器的奇葩問(wèn)題

[復(fù)制鏈接]
ID:66319 發(fā)表于 2014-9-17 21:05 | 顯示全部樓層 |閱讀模式
剛剛開(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燈很暗,不知道什么原因。希望各位多多指教,解答小弟心中的疑惑。

回復(fù)

使用道具 舉報(bào)

ID:66032 發(fā)表于 2014-9-18 17:02 | 顯示全部樓層
試一下這句
TACTL|=TASSEL_1+ID_0+MC_1+TACLR ;    //clear TAR
你用的是比較捕獲CCIE 不是Overflow TAIE,因此可以將TAIE屏蔽//TACTL|=TAIE;   請(qǐng)看
The TACCR0 CCIFG interrupt flag is set when the timer counts to the TACCR0 value. The TAIFG
interrupt flag is set when the timer counts from TACCR0 to zero. Figure 12-3 shows the flag set cycle
回復(fù)

使用道具 舉報(bào)

ID:66319 發(fā)表于 2014-9-26 18:22 | 顯示全部樓層
謝謝,已經(jīng)懂一些了這個(gè)和中斷源有關(guān)系,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表