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

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

[复制链接]

473

主题

4604

帖子

1万

积分

资深工程师

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

483

主题

4527

帖子

1万

积分

资深工程师

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

467

主题

4820

帖子

1万

积分

资深工程师

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

454

主题

4443

帖子

1万

积分

资深工程师

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

458

主题

4496

帖子

1万

积分

资深工程师

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

473

主题

4604

帖子

1万

积分

资深工程师

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

458

主题

4496

帖子

1万

积分

资深工程师

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

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

582

主题

5814

帖子

1万

积分

资深工程师

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

537

主题

5337

帖子

1万

积分

资深工程师

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

468

主题

4841

帖子

1万

积分

资深工程师

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

479

主题

4601

帖子

1万

积分

资深工程师

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

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

486

主题

4525

帖子

1万

积分

资深工程师

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

464

主题

4441

帖子

1万

积分

资深工程师

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

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

460

主题

4449

帖子

1万

积分

资深工程师

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

476

主题

4662

帖子

1万

积分

资深工程师

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

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

473

主题

4604

帖子

1万

积分

资深工程师

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

476

主题

4662

帖子

1万

积分

资深工程师

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


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

473

主题

4604

帖子

1万

积分

资深工程师

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

7

主题

549

帖子

1653

积分

助理工程师

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

1

主题

517

帖子

1551

积分

助理工程师

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

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

本版积分规则

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