智能车制作

标题: PWME|=0x08如何理解?谢谢 [打印本页]

作者: jiao19880804    时间: 2010-4-13 22:30
标题: PWME|=0x08如何理解?谢谢
PWME|=0x08 等同于PWME=PWME|0x08,这里为什么要用到异或?直接赋值不是更好么???谢谢请高手回答~
作者: lim1t    时间: 2010-4-13 22:30
初始化无所谓执行速度快不快啦,反正也就执行一次的嘛。

还是我说的这个原因啦,主要是对位操作的。

你给的这个代码写得不好,MCCTL有对应位的名称的嘛,用哪个就直接赋值就行了。

没必要像这样,搞得新手都读不懂。
作者: DEMOK    时间: 2010-4-13 22:51
计算机逻辑运算速度要高于赋值运算速度
作者: lim1t    时间: 2010-4-13 23:05
要是你的PWME之前赋了值的话,假设PWME=0xf0;
你直接PWME=0x08不就改写了高8位的值了么。。。结果PWME的值为0x08
如果PWME|=0x8,结果PWME的值为0xf8,懂了不。
作者: jiao19880804    时间: 2010-4-14 09:32
1楼你好:你说的有道理
2楼你好:这个道理我知道。不知道模数递减产生中断你看了没有?
void MDCInit(void)
{                                                                            
  MCCTL = MCCTL&0Xfb; //模数计数器禁止运行
  MCCTL = 0Xe3;       //允许中断,模数计数方式
                      //返回时重新加载所用的常数,分频常数为16
  MCCTL = MCCTL|0X04; //模数计数器使能
  MCCNT = 1500;       //(1/40M)*16*2500= 1ms
  MCCTL = MCCTL|0X08 ; //把模数常数寄存器的值加载到模数计数器FLMC;
}
这是初始化,但是也用到了。
不理解。。。
2位能解释下这个程序么?十分感谢
作者: jiao19880804    时间: 2010-4-14 19:49
谢谢你们!
我知道是怎么回事了。
但是楼上的你说这个代码写的不好是不对的。这个代码写的很漂亮,新手是看不懂的O(∩_∩)O~
作者: crj19880917    时间: 2010-5-3 02:03
那就直接写
PWME=0;
就可以了么
作者: 向往智能    时间: 2010-5-5 00:04
luguo




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2