欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: msp430g2553定時器的奇葩問題 [打印本頁]

作者: 真的愛你in    時間: 2014-9-17 21:05
標題: msp430g2553定時器的奇葩問題
剛剛開始學習msp430g2553,板子是launchpad,今天嘗試著寫了一個定時器的程序,程序的功能是利用Timer_A定時一秒使LED燈閃爍,程序如下#include <msp430g2553.h>
void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;                   //關閉看門狗
  BCSCTL1|=DIVA_0;
  BCSCTL3|=LFXT1S_0;
  P1DIR|=BIT0;                           //設置P1.0為輸出管腳。
  P1OUT&=~BIT0;
  TACTL|=TASSEL_1+ID_0+MC_1;          //選擇ACLK為時鐘源,0分頻,計數器清零,增計數器模式。
  TACTL&=~TAIFG;                           //清中斷標志位
  TACCTL0|=CCIE;
  TACCR0=32768-1;  //定時器計數寄存器初值,定時時間為1秒,初值是32767而不是32768切記
  //TACTL|=TAIE;                          //運行TA溢出中斷
  _EINT();                               //允許總中斷
  while(1);

}
#pragma vector=TIMER0_A0_VECTOR
   __interrupt void TA_ISR(void)
   {
     P1OUT^=BIT0;

   }

這個程序工作是正常的,但是在調試過程中發現了幾個問題,問題一:如果不加 TACCTL0|=CCIE;只有TACTL|=TAIE;  則進不去中斷,難道定時器的溢出不能產生中斷嗎?問題二:如果TACCTL0|=CCIE;TACTL|=TAIE; 同時存在則LED燈很暗,不知道什么原因。希望各位多多指教,解答小弟心中的疑惑。


作者: mqwu    時間: 2014-9-18 17:02
試一下這句
TACTL|=TASSEL_1+ID_0+MC_1+TACLR ;    //clear TAR
你用的是比較捕獲CCIE 不是Overflow TAIE,因此可以將TAIE屏蔽//TACTL|=TAIE;   請看
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
作者: 真的愛你in    時間: 2014-9-26 18:22
謝謝,已經懂一些了這個和中斷源有關系,




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1