完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/******************************************* 函数名称:Read1Byte 功 能:从DS1302读出1个字节的数据 参 数:无 返回值 :读出的一个字节数据 ********************************************/ uchar Read1Byte(void) { uchar i; uchar rdata = 0X00; DS_SDA_IN; //SDA对应的IO设置为输入状态 DS_RST1; //REST=1 for(i = 8; i > 0; i--) { DS_SCL1; delay(10); DS_SCL0; delay(10); rdata >>= 1; if(DS_SDA_BIT) rdata |= 0x80; } return(rdata); } 上述为MSP430F149的官方例程,功能是从DS1302中读出1个字节的数据。通过将程序与时序对比,发现加红的两句代码是不是出错了?为什么移位之后还要将数据与0x80相或呢?这样做不就会改变读取的数据吗?430小白一个,麻烦各位大侠指点一下,小弟不胜感激。 |
|
相关推荐
2个回答
|
|
如果每次读取的二进制数存入到rdata的高位并向右移位一次,再与0x80作或运算,这样就不会改变读取的数据.
|
|
|
|
读取的二进制是放在高位,即第7位,右移1位就到了第6位,然后再与0x80相或不就又给第7位置1了吗?这样就改变了读取的数据了,难道不是这样吗? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12024 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 05:31 , Processed in 0.809688 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号