计划用定时器Timer_A做一个秒表,程序如下,可是没有反映。将TACTL=TASSEL0+TACLR中的TASSEL0改为TASSEL1(选MCLK)就有反映了,但不是秒表,太快,搞不明白为什么,我的电路中只用了32768的一个晶振。请高手指点。
#include <msp430x11x1.h>
void Init_Timer_A(void) //1s定时 { TACTL=TASSEL0+TACLR; //选择ACLK,清除TAR TACCTL0=CCIE; //TBCCR0中断允许,有CCR0~CCR4共5个捕捉/比较寄存器 TACCR0=32768; //间隔1秒(ACLK=32768Hz)
TACTL|=MC0; //增记数 }
void main(void) { WDTCTL = WDTPW + WDTHOLD; Init_Timer_A(); _EINT(); // Enable interrupts while(1) { ; } }
// Timer A0 interrupt service routine #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { dispbuf[1]++; //显示值加一
} |