2852|7

67

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430F149 定时器比较模式有点难题,求大神解答 [复制链接]

2芯积分
利用定时器捕获/比较模块的比较模式产生方波:捕获比较模块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时,会置零重新计数,那当CCR1FFFFh时,CCR1=CCR1+10000-FFFF?还是CCR1继续叠加?如果继续叠加,怎样进行比较?求大神解答

最新回复

  详情 回复 发表于 2015-7-29 16:11
 
点赞 关注(1)

回复
举报

1万

帖子

203

TA的资源

管理员

沙发
 
帮顶一下,看大牛来分析~
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 

回复

67

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
okhxyyo 发表于 2015-7-28 08:38
帮顶一下,看大牛来分析~

顶顶顶
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

4
 
您的程序中其实最重要的有一句:TACTL=TASSEL_2+ID_3+MC_2+TACLR

TASSEL_2:表示Timer_A clock source select:SMCLK;

ID_3:表示8分频;

MC_2:表示是Continuous mode,这种mode与up mode是不一样的(请看图片中的文字说明),请你认真的参阅User's guide。



也就是说CCR1的值会跟0FFFF对比较,如果大于就复位。小于的时候继续您在定时器中断函数中的  CCR1+=10000该符合语句的执行,当然前提是TAIV==2的情况下啦。

PS(此处是重点):若您的SMCLK=32.768Khz,那么经过8分频后F=4.096Khz--->T=1/4096

t=N/T(t表示定时器的定时时间即定时间隔,N表示 CCR1的值,T表示就是上式中计算出来的T=1/4096(单位:S),当然不同的频率下T的值不同哦。)

t=10000/(1/4096)=40960000s。

TACLR:置位该位表示可以resetTAR, the clock divider, and the count direction。.


 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(中级)

5
 
huaiqiao 发表于 2015-7-28 17:56
您的程序中其实最重要的有一句:TACTL=TASSEL_2+ID_3+MC_2+TACLR

TASSEL_2:表示Timer_A clock source s ...

那么当计数器TAR计数到CCR1(CCR1FFFFh)时,会进入中断,CCR1+=10000,CCR1>FFFFH时,计数器会置零?还是CCR1置零?谢谢您的回答
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

6
 
王一天 发表于 2015-7-28 18:45
那么当计数器TAR计数到CCR1(CCR1FFFFh)时,会进入中断,CCR1+=10000,CCR1>FFFFH时,计数器会置零?还 ...

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

回复

67

帖子

0

TA的资源

一粒金砂(中级)

7
 
那么当计数器TAR计数到CCR1(CCR1FFFFh)时,会进入中断,CCR1+=10000,CCR1>FFFFH时,CCR1=CCR1+10000-65536.
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

8
 
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表