搜索
bottom↓
回复: 5

to 傻孩子与各位大虾:PRR |= 1<<PRUSART0; 是对PRUSART0的控制位置位,

[复制链接]

出0入0汤圆

发表于 2008-6-20 22:50:35 | 显示全部楼层 |阅读模式
<<这个移位运算符表达式为: x << n .表示将x 以二进制方式向左移动n位。
不管是<< 还是>> 都是以右边的操作数来指定移位的位数。
所以PRR |= 1<<PRUSART0 应该如何解释呢

在傻孩子版主的书里第347页虽然讲了一些,但是对PRR |= 1<<PRUSART0没有做进一步语法诠释,我不太清楚,故请帮忙做一下解释。谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入296汤圆

发表于 2008-6-20 23:20:03 | 显示全部楼层
请你把347页后面所有和位运算有关的内容看完……然后再看这个问题……

出0入0汤圆

 楼主| 发表于 2008-6-21 00:53:43 | 显示全部楼层
|= 的优先级低于 <<
所以 PRR |= 1<<PRUSART0 应该先执行 1 <<PRUSART0
但是 << 右边是移位的位数, <<的左边 是所要被移位的操作数,
但是在语法上就感觉不对了,怎么样把 1 移 PRUSART 位呢?这才是我的问题。或者说我想知道 PRUSART的定义,有可能会有帮助。
我知道 它等同于
PRR |= BIT(PRUSART0)
但是为什么?

另,我已看完 第11章。里面没有我想要的答案。

出0入90汤圆

发表于 2008-6-21 01:28:59 | 显示全部楼层
这个,在头文件里都有定义,好比PD0其实就是0,PD1就是1。1用2进制表示就是00000001,那么将1《PD0就是将1左移PD0位,也就是左移0位。如果是1《PD7,就是将1左移7位,也就是10000000。这么说,应该清楚了吧!

出0入296汤圆

发表于 2008-6-21 03:46:31 | 显示全部楼层
to 【2楼】 xj_1232005  
    请问你有仔细阅读这句话么?书中已经说了在iom48v.h中有关于PRUSART0的定义了啊。
您有打开iom48v.h这个文件做确认了么?谢谢您的提醒,下一版书中,我会在这里加入一个
强调性的旁批,提醒大家去对应的文件确认该宏的实质。

(原文件名:未命名.JPG)

出0入0汤圆

 楼主| 发表于 2008-6-21 12:49:24 | 显示全部楼层
谢谢3楼【3楼】 honami520
谢谢【4楼】 Gorgon Meducer 傻孩子
明白了。
谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 17:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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