打印

ATmega16问题

[复制链接]
1242|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lordblessing|  楼主 | 2014-2-24 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wangch_sh| | 2014-2-24 15:27 | 只看该作者
位操作,更直观。
比如写PORTB|=(1<<0)|(1<<4)|(1<<6);
比写PORTB=0X51可以方便看出哪几位置一。

使用特权

评论回复
板凳
lordblessing|  楼主 | 2014-2-24 17:08 | 只看该作者

谢谢  PORTB=(1<<0)这样也行吧  为什么要或呢?

使用特权

评论回复
地板
NE5532| | 2014-2-24 21:25 | 只看该作者
因为只需要操作其中1个位呀,直接用等号来做,不是把不想改变的位也一起改变了么。

使用特权

评论回复
5
sjnh| | 2014-2-25 07:20 | 只看该作者
楼上说的对,
PORTB|=(1<<0),相当于PORTB = PORTB | (1<<0); 只是把PB0设置成高,不影响其他7个IO口
如果是PORTB=(1<<0),其他7个IO口都成了低。

使用特权

评论回复
6
z755924843| | 2014-2-25 21:19 | 只看该作者
版主正解,相对PORTB = PORTB | (1<<0);代码量少。

使用特权

评论回复
7
liang5319| | 2014-2-25 22:08 | 只看该作者
PORTB|=(1<<0)  和  PORTB=OX01是不一样的,PORTB|=(1<<0)是把PB0置高,PB口的其他位,该是0还是0,该是1还是1.。
但是 PORTB=OX01,这个吧PB0置1,但是把其他都置零了。
所以呢,这两个不是随便用的哦!

使用特权

评论回复
8
wangtianmingok| | 2014-2-26 16:26 | 只看该作者

使用特权

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

本版积分规则

3

主题

7

帖子

0

粉丝