1左移0位有什么用??

juso2011 2012-02-23 03:55:39
1<<GPIO_POWER_OFF,GPIO_POWER_OFF为0.求解??
...全文
2660 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wopabe 2012-02-24
  • 打赏
  • 举报
回复
移位0位当然没什么用了,不过以后有用
nwpulei 2012-02-24
  • 打赏
  • 举报
回复
如果单纯询问左移0位或右移0位,为何不写一段小程序自己测试一下呢?
hanyunqi 2012-02-24
  • 打赏
  • 举报
回复 1
这应该是ARM的GPIO设置.
所有寄存器设置都是用移位设置的,因为这样比较直观.
如果,你这样设置:
GPIO_xxx = GPIO_xxx | 1
你还得去查寄存器表才知道它是实现了什么功能.
但是,如下设置就会比较直观
GPIO_xxx = GPIO_xxx | 1<<GPIO_POWER_OFF
这样设置,你不必考虑GPIO_POWER_OFF的值是多少,也不用查表就知道它是把GPIO_POWER_OFF位使能了.
TMAC10052120353 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 downmooner 的回复:]
引用 2 楼 majia2011 的回复:

GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用

否则也不用define了


对的,这里define是为了方便以后改成其他值
[/Quote]
++
pathuang68 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 majia2011 的回复:]

GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用

否则也不用define了
[/Quote]

++
  • 打赏
  • 举报
回复
2楼正解
AnYidan 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 majia2011 的回复:]
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用

否则也不用define了
[/Quote]

++
daviddb7 2012-02-23
  • 打赏
  • 举报
回复
在当前环境下POWER的GPIO刚好是0,对应寄存器的第0位
如果硬件做了修改,GPIO不一样了,可以不修改代码,把这个GPIO_POWER_OFF改为新的GPIO值就可以了。
pubuzhixia 2012-02-23
  • 打赏
  • 举报
回复
通用性代码,code的美观性和易理解性。不必深究。
如果不出所料,应该在GPIO_POWER_OFF define的地方还有一堆类似的define,也用于移位的。
EmbeddedLong 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 majia2011 的回复:]
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用

否则也不用define了
[/Quote]

是的,这个在嵌入式底层常常用 在这里可以不写
写了原因有2:
1.就是为了通用。。
2。就是为了明了,
downmooner 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 majia2011 的回复:]

GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用

否则也不用define了
[/Quote]

对的,这里define是为了方便以后改成其他值
赵4老师 2012-02-23
  • 打赏
  • 举报
回复
long a;
for (int i=0;i<32;i++) {
a|=1<<i;//将a的bit i置1
a&=~(1<<i);//将a的bit i清0
}
majia2011 2012-02-23
  • 打赏
  • 举报
回复
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用

否则也不用define了
面包大师 2012-02-23
  • 打赏
  • 举报
回复
左移乘以2,右移除以2.
移位其实还分很多种:逻辑移位、循环移位、算术移位。这个左移0位感觉没用

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧