完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
关于这个_BV(i)指令的统一解释是:
#define _BV(bit) (1 《《 (bit)) _BV()是把1左移N位的函数。 _BV(7)相当于(1《《7) 本身和置位还是清零没有关系。不过这个函数,实际上却真的大多数应用于位的置位或清零。 比如: PORTA|=_BV(PA7) PORTB&=~_BV(PB6) PORTC^=_BV(PC5) 分别相当于: PORTA = PORTA | (1《《PA7) //“|”是位或运算符 PORTB = PORTB & (~(1《《PB6)) //“&”是位与运算符 PORTC = PORTC ^ (1《《PC5) //“^”是位异或运算符 下面举几个例子分析: 1、假如PORTB=0xFF PORTB = ~_BV(5); //执行BV(5),-BV=01000000,执行~运算符以后,PORTB=10111111 2、假如PORTD=0x00 PORTD^=_BV(PD7); //执行BV(PD7)后,-BV=10000000,则PORTD^_BV=00000000^10000000=10000000 |
|
|
|
只有小组成员才能发言,加入小组>>
2604 浏览 0 评论
799浏览 1评论
243浏览 1评论
563浏览 0评论
308浏览 0评论
522浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-28 13:45 , Processed in 1.076557 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号