MSP430F149 定时器比较模式有点难题,求大神解答

2019-03-24 09:58发布

利用定时器捕获/比较模块的比较模式产生方波:捕获比较模块1产生20HZ的方波,并由p3.2输出。
void main ()
{
WDTCTL=WDTPW+WDTHOLD;
TACTL=TASSEL_2+ID_3+MC_2+TACLR;//MCLK八分频后100khz,连续计数模式,计数器清零
CCTL1=CCIE;  CCR1=10000;
P3DIR=0XFF;  P3OUT=0X00;
_EINT();
for(;;);
}
#pragma vector=TIMERA1_VECTOR
__interrupt void TIMER_A();
{
switch(TAIV)
{
case 2:P3OUT^=0x04;
           CCR1+=10000;
           break;
case 4:break;
case 10:P3OUT^=0x02;
            break;
}
}

以上的程序中有一个疑问是:TAR 16位计数器当计满FFFFH时,会置零重新计数,那当CCR1<FFFFh,CCR1+10000>FFFFh时,CCR1=CCR1+10000-FFFF?还是CCR1继续叠加?如果继续叠加,怎样进行比较?求大神解答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
huaiqiao
2019-03-25 01:47
王一天 发表于 2015-7-28 18:45
那么当计数器TAR计数到CCR1(CCR1FFFFh)时,会进入中断,CCR1+=10000,CCR1>FFFFH时,计数器会置零?还 ...

您好,我已经很清楚的告诉你了。在这句“也就是说CCR1的值会跟0FFFF对比较,如果大于就复位。小于的时候继续您在定时器中断函数中的  CCR1+=10000该符合语句的执行,当然前提是TAIV==2的情况下啦。” 请仔细阅读我的回答好吗? 您一定要我很清楚的告诉你,是计数器置零还是复位吗?

一周热门 更多>

相关问题

    相关文章