完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单片机为stc宏晶单片机,8位单片机。我给一个状态变量赋值是。当我位操作是:
status |= 0x00800000; status |= 0x00400000; 结果正确。 先预定义 #define POS_STATUS_USECD 1<<18 #define POS_STATUS_USEBD 1<<19 status |= POS_STATUS_USEBD; status |= POS_STATUS_USECD; status 18 19位结果为0。不能达到我位或的结果 这个是怎么回事。希望知道的给个答复。谢谢。 |
|
相关推荐
4个回答
|
|
不好意思。18、19位数据应该为:
status |= 0x00080000; status |= 0x00040000; 坐等大神解答。不知道是不是只能操作16数据。 |
|
|
|
把十六进制改成二进制吧
|
|
|
|
|
|
|
|
你是不是用的uvsion软件来编程的?在uvison中整型常量默认为2个字节16位(可通过a=sizeof(1);语句来进行验证,在debug中查看a的值为2),1<<15后就变为1000 0000 0000 0000,再继续左移则高位的1溢出,以后一直为0000 0000 0000 0000,因此,1<<18和1<<19后16位上全为0(十进制0),再与status进行按位或运算就得不到正确结果。可将1改为长整形数据1L或1UL,此时1L或1UL为4字节数据32位,左移18位或19位后,1不会溢出,此时可得到正确结果。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
515 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
515 浏览 0 评论
780 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1360 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
572 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11759 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:58 , Processed in 0.677471 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号