打印
[疑难问答]

请教个小问题

[复制链接]
1997|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huamunv|  楼主 | 2010-2-17 08:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TMOD|=0x20;      //初始化T1为定时功能,模式2
PCON|=0x80;      //设置SMOD=1


这个程序是C语言写的。能不能改成如下的:
TMOD=TMOD|0x20;      //初始化T1为定时功能,模式2
PCON=PCON|0x80;      //设置SMOD=1


如果是,怎么解释就向注解中的那样会出现??
沙发
杨工| | 2010-2-17 09:21 | 只看该作者
2种写法是等价的,前一种是标准的C语言。优点是简练,字少,一目了然,不易出错。不提倡第二种。
最后一句问题没看懂。

使用特权

评论回复
板凳
huamunv|  楼主 | 2010-2-17 10:12 | 只看该作者
2# 杨工
就是PCON=PCON|0x80具体如何解释?
为啥是设置SMOD=1?

使用特权

评论回复
地板
ljhtj| | 2010-2-17 22:14 | 只看该作者
看PCON最高位(SMOD)的功能

使用特权

评论回复
5
David_ming| | 2010-2-18 00:06 | 只看该作者
等效的,第一种比较精简容易理解,第二种字太多了,所以不提倡,而且就编译器来讲编译效率(不一定是代码效率)比较高,楼主问的  PCON = PCON | 0x80 的意思就是PCON这个寄存器与 0x80 这个数字相或运算,在或运算里边一个bit里边只要有1 ,那么这一位结果就是1,楼主好好看看书哦~

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Karlshen + 1
6
Karlshen| | 2010-2-20 21:32 | 只看该作者
五楼解释得好详细啊

使用特权

评论回复
7
tiger2010| | 2010-2-20 21:56 | 只看该作者
新手进来学习

使用特权

评论回复
8
laslison| | 2010-2-21 15:35 | 只看该作者
或运算就不用解释了吧:L

使用特权

评论回复
9
linhai1986| | 2010-2-21 18:43 | 只看该作者
呵呵:)

使用特权

评论回复
10
wangwo| | 2010-2-23 12:13 | 只看该作者
讲得透彻

使用特权

评论回复
11
huamunv|  楼主 | 2010-3-12 21:34 | 只看该作者
理解了,谢谢各位!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

730

帖子

1

粉丝