智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4155|回复: 7
打印 上一主题 下一主题

[编程类] PWME|=0x08如何理解?谢谢

[复制链接]

9

主题

199

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8268

论坛元老奖章

QQ
威望
529
贡献
7627
兑换币
0
注册时间
2010-1-10
在线时间
56 小时
跳转到指定楼层
#
发表于 2010-4-13 22:30:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1贡献
PWME|=0x08 等同于PWME=PWME|0x08,这里为什么要用到异或?直接赋值不是更好么???谢谢请高手回答~

最佳答案

查看完整内容

初始化无所谓执行速度快不快啦,反正也就执行一次的嘛。 还是我说的这个原因啦,主要是对位操作的。 你给的这个代码写得不好,MCCTL有对应位的名称的嘛,用哪个就直接赋值就行了。 没必要像这样,搞得新手都读不懂。

1

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
QQ
威望
277
贡献
22
兑换币
0
注册时间
2010-4-13
在线时间
4 小时
7#
发表于 2010-5-5 00:04:58 | 只看该作者
luguo
回复

使用道具 举报

5

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
431
威望
355
贡献
20
兑换币
6
注册时间
2010-3-19
在线时间
28 小时
6#
发表于 2010-5-3 02:03:31 | 只看该作者
那就直接写
PWME=0;
就可以了么
回复

使用道具 举报

9

主题

199

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8268

论坛元老奖章

QQ
威望
529
贡献
7627
兑换币
0
注册时间
2010-1-10
在线时间
56 小时
5#
 楼主| 发表于 2010-4-14 19:49:50 | 只看该作者
谢谢你们!
我知道是怎么回事了。
但是楼上的你说这个代码写的不好是不对的。这个代码写的很漂亮,新手是看不懂的O(∩_∩)O~
回复

使用道具 举报

9

主题

199

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8268

论坛元老奖章

QQ
威望
529
贡献
7627
兑换币
0
注册时间
2010-1-10
在线时间
56 小时
4#
 楼主| 发表于 2010-4-14 09:32:35 | 只看该作者
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位能解释下这个程序么?十分感谢
回复

使用道具 举报

13

主题

176

帖子

0

精华

常驻嘉宾

宝塔镇河妖

Rank: 8Rank: 8

积分
3622

活跃会员奖章

QQ
威望
832
贡献
2416
兑换币
258
注册时间
2009-1-23
在线时间
187 小时
3#
发表于 2010-4-13 23:05:36 | 只看该作者
要是你的PWME之前赋了值的话,假设PWME=0xf0;
你直接PWME=0x08不就改写了高8位的值了么。。。结果PWME的值为0x08
如果PWME|=0x8,结果PWME的值为0xf8,懂了不。
回复

使用道具 举报

140

主题

1016

帖子

2

精华

功勋会员

智能车八届元老!武汉岱默科技创始人!

Rank: 10Rank: 10Rank: 10

积分
32723

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
4239
贡献
25778
兑换币
1456
注册时间
2009-12-9
在线时间
1353 小时
2#
发表于 2010-4-13 22:51:45 | 只看该作者
计算机逻辑运算速度要高于赋值运算速度
回复

使用道具 举报

13

主题

176

帖子

0

精华

常驻嘉宾

宝塔镇河妖

Rank: 8Rank: 8

积分
3622

活跃会员奖章

QQ
威望
832
贡献
2416
兑换币
258
注册时间
2009-1-23
在线时间
187 小时
1#
发表于 2010-4-13 22:30:41 | 只看该作者
初始化无所谓执行速度快不快啦,反正也就执行一次的嘛。

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

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

没必要像这样,搞得新手都读不懂。
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 17:55 , Processed in 0.073708 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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