代码如下:
#include "msp430f149.h"
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P3DIR |=0x06;
CCTL0=CCIE; //CCR0中断允许
CCR0=20000;
TACTL=TASSEL_2+TACLR+MC_2+TAIE; //时钟源SMCLK,计数器清零,连续计数,溢出中断允许
_BIS_SR(LPM0_bits+GIE);
}
//Timer_A0中断服务程序
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
P3OUT^=0x02;
CCR0+=20000;
}
//Timer_A3中断服务程序
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_1(void) //读取TAIV,复位中断标志
{
switch(TAIV)
{
case 2: break;
case 4: break;
case 10: P3OUT ^=0x04;
break;
}
}
这段程序写完,我有了个疑问,希望大家帮忙解决。
就是TAR达到0FFFFh时,main函数是重头再执行还是什么,我这里想的是若是不重新执行的话CCR0的值就是不会回到20000,也就应该没了方波的效果吧。
[
本帖最后由 麻滴滴 于 2012-7-9 11:37 编辑 ]