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条回答
okhxyyo
1楼-- · 2019-03-24 14:09
< 帮顶一下,看大牛来分析~
王一天
2楼-- · 2019-03-24 16:21
< :TI_MSP430_内容页_SA7 -->
okhxyyo 发表于 2015-7-28 08:38
帮顶一下,看大牛来分析~

顶顶顶
huaiqiao
3楼-- · 2019-03-24 17:46
 精彩回答 2  元偷偷看……
王一天
4楼-- · 2019-03-24 22:55
huaiqiao 发表于 2015-7-28 17:56
您的程序中其实最重要的有一句:TACTL=TASSEL_2+ID_3+MC_2+TACLR

TASSEL_2:表示Timer_A clock source s ...

那么当计数器TAR计数到CCR1(CCR1<FFFFh,CCR1+10000>FFFFh)时,会进入中断,CCR1+=10000,CCR1>FFFFH时,计数器会置零?还是CCR1置零?谢谢您的回答
huaiqiao
5楼-- · 2019-03-25 01:47
王一天 发表于 2015-7-28 18:45
那么当计数器TAR计数到CCR1(CCR1FFFFh)时,会进入中断,CCR1+=10000,CCR1>FFFFH时,计数器会置零?还 ...

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

一周热门 更多>

相关问题

    相关文章