430关于定时器A0头文件中问题求解
430中对定时器TACTL寄存器中MCx赋值的头文件如下图http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657666LO1B1U.jpg
(原文件名:未命名.jpg)
MC1和MC_1后面的注释一样 但值明显不同 MC_1是增计数模式 而MC1则是连续计数模式
以上疑问,求解答和探讨。 沙发一下 MC0 表示单独MC0的位
MC1 表示单独MC1的位
MC_x 表示MC1MC0合起来的值是x
MX_0表示 MC1MC0:00
MX_1表示 MC1MC0:01
MX_2表示 MC1MC0:10
MX_3表示 MC1MC0:11 上面写错了,是MC_0,不是MX_0。 我是这样理解的
前面的MC0 MC1表示在寄存器的哪一位
后面的带绿色数字相乘的表示值,当然两个都是无符号的数值,都可以赋给寄存器 回复【4楼】zhengdahe
-----------------------------------------------------------------------
前面的MC0 MC1表示在寄存器的哪一位?这句话怎么理解 定时器A0控制寄存器不就只有一个么? TACTL = TASSEL_2 + MC_3;
TACTL = TASSEL_2 + MC0 + MC1;
以上两种写法一样 回复【6楼】15085362
-----------------------------------------------------------------------
这个我知道啊,现在就是问有人在选择A0工作模式时有用过MC0 MC1这两个量么?T1的例程上也没有用过这两个 都是MC_1MC_2 MC_3
谁能解释下MC0 和MC1的用法 如果直接设置工作模式,用MC_1之类的就行,
如果你不想改变寄存器的其他位,只想改变工作模式,就要用TACTL |= MC0;之类的操作吧。
MC0和MC1大概是做这个用的。我没用过,猜的。 回复【5楼】cumtgao
-----------------------------------------------------------------------
就是对应的寄存器里的哪一位,就是模式选择有两位控制,一个MC0,一个MC1。
MC0 0X0010对应第四位,MC1 0X0020对应第五位。 引用图片【楼主位】
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_657666LO1B1U.jpg
(原文件名:未命名.jpg)
谢谢楼上各位的解答,但是貌似我已经糊涂了。以前只用下面MC_0--MC_3没有疑问,但是在一条程序里看到了TACTL |= MC1 而MC1=0X0020 对应TACTL寄存器看应该是工作于counts up to 0xffff 可程序后面注释却是工作于up to CCR0模式 到底是程序有问题还是我理解有问题? 单看这一句,我想是程序注释错了。 由于定时器的计数模式是由两位控制,我理解的是:MC1和MC0分别代表了两位;而MC_0至MC_3则代表了这两位的四种状态!其他寄存器解释有很多这样的情况,觉得是方便编程! 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模式”,应该是注释错了。 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模式”,应该是注释错了。
页:
[1]