#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左右,请高手指点我哪里理解错了。 |