完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
单片机关于 A/D的 一个程序看不懂。。。谢谢 for(i = 0;i < 8;i++)
{ sclk = 1; if(data_temp) ??? 这里为什么还要判断一下?? data_ad |= 0x01; sclk = 0; data_ad = data_ad << 1; } cs = 1; data_ad = data_ad * (500 / 255);???这里为什么是 (500 / 255) return(data_ad); |
|
相关推荐
7个回答
|
|
你的AD是串行输出,高位在前,那个if语句就是判断数据线上是1还是0,是1的话,就给变量data_ad的最低位置1。
为什么是500/255,也许因为你的AD是8位数据输出,参考电压是5V,把结果放大了100倍。 好好看看AD转换的资料,很简单的 |
|
|
|
来跟着学习中
|
|
|
|
lai xue xi
|
|
|
|
谢谢哈。。我知道是高位在前的。。但是为什么还需要判断一下 数据线上是1还是0???是1的话,就给变量data_ad的最低位置1。不是1的话 就不执行data_ad |= 0x01; 为什么要这样的?我查这个芯片资料了,上面没解释关于这个的。。。谢谢 |
|
|
|
因为data_ad的最低位在进行if判断之前是0,如果数据线上是1,就置1,再左移1位;如果是0,就直接左移1位。 你的C语言基础要加强啊 |
|
|
|
芯片资料上至少会告诉你输出二进制码和输入电压的关系 |
|
|
|
看看,学习一下
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11760 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:25 , Processed in 0.602139 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号