完善资料让更多小伙伴认识你,还能领取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 |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1142浏览 2评论
742浏览 1评论
495浏览 0评论
256浏览 0评论
418浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 14:42 , Processed in 1.249176 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号