查看: 216|回复: 39
收起左侧

[技术求助] 这句为什么要这样写啊?

[复制链接]

458

主题

4439

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-9-9 18:23 | 显示全部楼层 |返回版面||阅读模式
PORTB |=(1<<2)

466

主题

4361

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:24 | 显示全部楼层 |返回版面
有啥问题?

456

主题

4682

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:27 | 显示全部楼层 |返回版面
为什么不直接写成PORTB |=0x??格式呢?

443

主题

4291

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:30 | 显示全部楼层 |返回版面
看自己的使用习惯吧

446

主题

4342

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:32 | 显示全部楼层 |返回版面
原来是习惯问题啊,我还以为又是什么抠时间的问题呢

458

主题

4439

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-9-9 18:34 | 显示全部楼层 |返回版面
嗯,或者又是些老鸟故作深沉的伎俩 呵呵

446

主题

4342

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:36 | 显示全部楼层 |返回版面

1<<2表示bit2
直观,可读性强,不容易出错

570

主题

5651

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:39 | 显示全部楼层 |返回版面
对,也不用自己计算

523

主题

5180

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:40 | 显示全部楼层 |返回版面
比如bit10是多少,至少你要计算一下才知道是多少,但是(1<<10)是不会错的

454

主题

4666

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:42 | 显示全部楼层 |返回版面
楼上几位一句道破天机,哈哈

466

主题

4438

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:45 | 显示全部楼层 |返回版面

PORTB |=(1u<<2) 保险点

474

主题

4369

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:45 | 显示全部楼层 |返回版面
编译器执行,不影响效率,看你习惯了

448

主题

4277

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:48 | 显示全部楼层 |返回版面

这样写容易读,一下就看出操作的事B口的第2脚,而且不影响执行效率,因为这个左移是编译器完成的。

447

主题

4285

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:50 | 显示全部楼层 |返回版面
这是对单独的某一位进行操作,不会影响PORTB口的其它位。

463

主题

4491

帖子

1万

积分

资深工程师

发表于 2017-9-9 18:56 | 显示全部楼层 |返回版面

C语言中移位操作要比乘法运算和逻辑运算要快,所以这样写!其实你自己说的扣时间是对的!

458

主题

4439

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-9-9 18:59 | 显示全部楼层 |返回版面
谢谢各位指点,我非常明白了

463

主题

4491

帖子

1万

积分

资深工程师

发表于 2017-9-9 19:02 | 显示全部楼层 |返回版面


PORTB |=(1<<2)
首先1<<2,你要懂,就是0000 0001移位两次是多少??就是BIT2,就是0000 0100,也就是把这个第三位取或,如果PORTB第三位是个1,那就是1,不是1就变成1,其他位不变。

458

主题

4439

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-9-9 19:03 | 显示全部楼层 |返回版面
搞定了,呵呵,犯了低级错误……结贴啦,多谢各位

7

主题

495

帖子

1491

积分

助理工程师

发表于 2017-9-9 20:51 | 显示全部楼层 |返回版面
这样只是改变PB1这个IO

1

主题

444

帖子

1332

积分

助理工程师

发表于 2017-9-9 20:52 | 显示全部楼层 |返回版面
shimx 发表于 2017-9-9 18:27
为什么不直接写成PORTB |=0x??格式呢?

这样是单一操纵IO
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

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