打印
[应用相关]

这句指令为什么这么写

[复制链接]
830|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiqi1|  楼主 | 2017-1-21 12:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在矩阵键盘显示程序中,
//读取各个管脚的状态
nP10 = P1IN & BIT0;
nP11 = (P1IN & BIT1) >> 1;
nP12 = (P1IN & BIT2) >> 2;
nP13 = (P1IN & BIT3) >> 3;
求指教 这句指令为什么这么写
沙发
androidbus| | 2017-1-21 12:51 | 只看该作者

然后呢?你是怎么应对这个的呢

使用特权

评论回复
板凳
litengg| | 2017-1-21 12:52 | 只看该作者
貌似c里>>是右移位数

使用特权

评论回复
地板
shashaa| | 2017-1-21 13:27 | 只看该作者
我大概明白什么意思 BIT1什么意思 为什么还要 >> 1

使用特权

评论回复
5
xia00| | 2017-1-21 13:28 | 只看该作者

P1IN&BIT1表示P1.1的输入结果,但是,它是一个字节。

使用特权

评论回复
6
zhuotuzi| | 2017-1-21 17:55 | 只看该作者
nP10 = P1IN & BIT0;
nP11 = (P1IN & BIT1) >> 1;
nP12 = (P1IN & BIT2) >> 2;
nP13 = (P1IN & BIT3) >> 3;
求指教 这句指令为什么这么写
___________________
可能左边他们定义的是个布尔类型,就是不是0就是1,而如果高于布尔值位数的赋值给布尔变量就只给第一位,那么通过这个移位可以把所要判断的那个位移位到第一位

使用特权

评论回复
7
hfdy01| | 2017-1-21 19:01 | 只看该作者
如果要表示P1.1为高电平,则是通过00000010表示的。

使用特权

评论回复
8
CallReceiver| | 2017-1-21 19:04 | 只看该作者

如果要将其赋值给bit型变量,那么就只有该字节的最低位被赋值过去。

使用特权

评论回复
9
boy1990| | 2017-1-21 19:10 | 只看该作者

我比较好奇nP10,nP11,n是怎没回事

使用特权

评论回复
10
sourceInsight| | 2017-1-21 19:12 | 只看该作者
“>>”为右移操作符,>> n表示右移n位

使用特权

评论回复
11
oayzw| | 2017-1-21 19:22 | 只看该作者
建议使用bitband

使用特权

评论回复
12
Garen2| | 2017-1-22 16:30 | 只看该作者
>> n表示右移n位

使用特权

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

本版积分规则

424

主题

1616

帖子

1

粉丝