完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
求解红字部分,为何要这么计算
void GetAdResult() { unsigned long VolSum=0,CurrSum=0,TemSum=0,VrefSum=0; //AIN2:Vs AIN3:Tempature,AIN5:Vref,Ain6:IS2 uint Vol1,Curr1,Tem1,Vref1; uint Vol2,Tem2; uchar i,j=0; for(i=0;i<4;i++)//可用switch分支结构替代 {//Vol1,Curr1,Tem1,Vref1均是电压,电流,温度,参考431电压的AD获取值 //Vol2,Curr2,Tem2,Vref2均是电压,电流,温度,参考431电压的128次取平均值后的准确值 if(i==0) { for(j==0;j<128;j++) { Vol1=AdcConvert(2); VolSum+=Vol1; } Vol2=VolSum/128;//读取平均值 VolSum=0;//清空AD缓存值 } else if(i==1) { for(j=0;j<128;j++) { Curr1=AdcConvert(6); CurrSum+=Curr1; } Curr2=CurrSum/128; CurrSum=0; } else if(i==2) { for(j=0;j<128;j++) { Tem1=AdcConvert(3); TemSum+=Tem1; } Tem2=TemSum/128; TemSum=0; } else if(i==3) { for(j=0;j<128;j++) { Vref1=AdcConvert(5); VrefSum+=Vref1; } Vref2=VrefSum/128; VrefSum=0; } } if(Vref2>0) { Vol2=Vol2*512.0/Vref2;//实际采到的基准电压和2.5V理想电压的差值 Voltage1=Vol2/5; vt=Curr2*512.0/Vref2; Debugc=vt;//电压值 |
|
相关推荐
1个回答
|
|
ADC转换值的计算方法就是当前测量得到的ADC数值乘以ADC每个二进制位所代表的数值,得到的就是转换值。有的ADC会有一个参考电压值REF,这个值代表ADC的满量程最大值。
具体的计算方法还可能会涉及到具体的电路,具体电路如果有设置电压偏移或放大等,都会影响计算公式 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
795 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
668 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
845 浏览 0 评论
1508 浏览 3 评论
由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常?
2409 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
3681 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 18:26 , Processed in 0.326938 second(s), Total 38, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号