完善资料让更多小伙伴认识你,还能领取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
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
151 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1043 浏览 0 评论
836 浏览 0 评论
874 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
869 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 22:06 , Processed in 0.717530 second(s), Total 58, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号