应该为0.5S,实际测试确实1S左右

2019-07-15 16:18发布

#include "msp430g2553.h"

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR |= BIT0;
  CCTL0 = CCIE;      //开定时器中断
  CCR0 = 50000;      //计数值
  TACTL = TASSEL_2+ ID_3 + MC_2;    //选择SMCLK时钟系统、8分频、上升模式,计数到CCR0
  //TACTL = TASSEL_1 + MC_2;


  _BIS_SR(LPM0_bits + GIE);
  //return 0;
}

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


这是我的定时器函数,其中系统时钟没有配置,默认DCO应该是800KHz,定时器选择SMCLK时钟系统、8分频、上升模式,计数到50000,计算中断的时间:

1/(8*100000)*8*50000= 0.5s

算出的中断时间好像应该为0.5S,可是我实际测试确实1S左右,请高手指点我哪里理解错了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。