搜索
bottom↓
回复: 14

430关于定时器A0头文件中问题求解

[复制链接]

出0入0汤圆

发表于 2011-7-14 09:46:23 | 显示全部楼层 |阅读模式
430中对定时器TACTL寄存器中MCx赋值的头文件如下图

(原文件名:未命名.jpg)

MC1和MC_1后面的注释一样 但值明显不同 MC_1是增计数模式 而MC1则是连续计数模式
以上疑问,求解答和探讨。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-7-14 09:48:53 | 显示全部楼层
沙发一下

出0入0汤圆

发表于 2011-7-14 09:51:25 | 显示全部楼层
MC0 表示单独MC0的位
MC1 表示单独MC1的位

MC_x 表示MC1MC0合起来的值是x

MX_0表示 MC1MC0:00
MX_1表示 MC1MC0:01
MX_2表示 MC1MC0:10
MX_3表示 MC1MC0:11

出0入0汤圆

发表于 2011-7-14 09:52:24 | 显示全部楼层
上面写错了,是MC_0,不是MX_0。

出0入0汤圆

发表于 2011-7-14 09:54:14 | 显示全部楼层
我是这样理解的
前面的MC0 MC1表示在寄存器的哪一位
后面的带绿色数字相乘的表示值,当然两个都是无符号的数值,都可以赋给寄存器

出0入0汤圆

 楼主| 发表于 2011-7-14 10:18:28 | 显示全部楼层
回复【4楼】zhengdahe
-----------------------------------------------------------------------

前面的MC0 MC1表示在寄存器的哪一位?这句话怎么理解 定时器A0控制寄存器不就只有一个么?

出0入0汤圆

发表于 2011-7-14 10:42:05 | 显示全部楼层
TACTL = TASSEL_2 + MC_3;
TACTL = TASSEL_2 + MC0 + MC1;
以上两种写法一样

出0入0汤圆

 楼主| 发表于 2011-7-14 11:02:54 | 显示全部楼层
回复【6楼】15085362
-----------------------------------------------------------------------

这个我知道啊,现在就是问有人在选择A0工作模式时有用过MC0 MC1这两个量么?T1的例程上也没有用过这两个 都是MC_1  MC_2 MC_3


谁能解释下MC0 和MC1的用法

出0入0汤圆

发表于 2011-7-14 11:20:29 | 显示全部楼层
如果直接设置工作模式,用MC_1之类的就行,
如果你不想改变寄存器的其他位,只想改变工作模式,就要用TACTL |= MC0;之类的操作吧。
MC0和MC1大概是做这个用的。我没用过,猜的。

出0入0汤圆

发表于 2011-7-14 13:28:56 | 显示全部楼层
回复【5楼】cumtgao
-----------------------------------------------------------------------

就是对应的寄存器里的哪一位,就是模式选择有两位控制,一个MC0,一个MC1。
MC0 0X0010对应第四位,MC1 0X0020对应第五位。

出0入0汤圆

 楼主| 发表于 2011-7-14 15:10:32 | 显示全部楼层
引用图片【楼主位】
-----------------------------------------------------------------------

(原文件名:未命名.jpg)
谢谢楼上各位的解答,但是貌似我已经糊涂了。以前只用下面MC_0--MC_3没有疑问,但是在一条程序里看到了TACTL |= MC1 而MC1=0X0020 对应TACTL寄存器看应该是工作于counts up to 0xffff 可程序后面注释却是工作于up to CCR0模式                               到底是程序有问题还是我理解有问题?

出0入0汤圆

发表于 2011-7-14 15:48:55 | 显示全部楼层
单看这一句,我想是程序注释错了。

出0入0汤圆

发表于 2011-7-14 16:44:20 | 显示全部楼层
由于定时器的计数模式是由两位控制,我理解的是:MC1和MC0分别代表了两位;而MC_0至MC_3则代表了这两位的四种状态!其他寄存器解释有很多这样的情况,觉得是方便编程!

出0入0汤圆

发表于 2011-7-14 17:12:13 | 显示全部楼层
MC0 和 MC1 是TACTL寄存器中的两个bit
MC_3 MC_2 MC_1 是对以上两个bit的组合模式

TACTL |= MC_3; 等价于 TACTL |= MC1+MC0;  //UP/DOWN模式
TACTL |= MC_2; 等价于 TACTL |= MC1;      //CONTINOUS UP模式
TACTL |= MC_1; 等价于 TACTL |= MC0;      //UP TO CCR0模式
TACTL |= MC_0; 等价于 TACTL &= ~MC1+~MC0;//STOP模式

至于“但是在一条程序里看到了TACTL |= MC1 而MC1=0X0020 对应TACTL寄存器看应该是工作于counts up to 0xffff 可程序后面注释却是工作于up to CCR0模式”,应该是注释错了。

出0入0汤圆

发表于 2011-7-14 17:12:39 | 显示全部楼层
MC0 和 MC1 是TACTL寄存器中的两个bit
MC_3 MC_2 MC_1 是对以上两个bit的组合模式

TACTL |= MC_3; 等价于 TACTL |= MC1+MC0;  //UP/DOWN模式
TACTL |= MC_2; 等价于 TACTL |= MC1;      //CONTINOUS UP模式
TACTL |= MC_1; 等价于 TACTL |= MC0;      //UP TO CCR0模式
TACTL |= MC_0; 等价于 TACTL &= ~MC1+~MC0;//STOP模式

至于“但是在一条程序里看到了TACTL |= MC1 而MC1=0X0020 对应TACTL寄存器看应该是工作于counts up to 0xffff 可程序后面注释却是工作于up to CCR0模式”,应该是注释错了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 22:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表