完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
用TL549 AD芯片来处理。它是8位的芯片。
uint ad_549() //TLC549处理 { uchar i; uint data_ad = 0; cs = 1; //初始化,启动 sclk = 0; cs = 0; _nop_(); 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/ 256); return(data_ad); } 为什么转换后的值要 * (500/ 256),这部分该怎么理解? 谁能说下 |
|
相关推荐
8个回答
|
|
本帖最后由 无量寿经 于 2017-9-14 22:45 编辑
500应该是5v电压放大100倍,256是8位数据的分辨率,256应改为255 模拟量 = 基准电压×AD值 /255 ( 8位A/D) 模拟量 = 基准电压×AD值 /1023 ( 10位A/D) 模拟量 = 基准电压×AD值 /4095 ( 12位A/D)
最佳答案
|
|
|
|
应该是数值补偿
|
|
|
|
500应该是5v电压放大100倍,256是8位数据的分辨率
|
|
|
|
|
|
|
|
这里应该是为了方便显示,可以理解为转换后的电压=AD值*(5/256)*100,5/256是满值5伏电压进行转换的AD值的每一个二进制位的电压值,最后乘以100是因为程序里用了整形变量存储电压值,这样就存不了小数,所以乘以100,就可以有2位小数了 。
|
|
|
|
按照电压基准和分辨率位数进行换算
|
|
|
|
..................................................
|
|
|
|
话说,为什么STC自带10位ADC不用,要外接8位ADC
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
425 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
413 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之VMware Tools安装
373 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu系统安装
590 浏览 0 评论
国产芯上运行TinyMaxi轻量级的神经网络推理库-米尔基于芯驰D9国产商显板
648 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10660 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-14 18:18 , Processed in 0.868599 second(s), Total 55, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号