adc调试
来源:互联网 发布:数据库系统概念 编辑:程序博客网 时间:2024/06/06 21:42
根据霍尔原件的特征曲线图:
从图中可以看出霍尔原件的输出与输入的关系是线性变化的,变化的公式是Uout=0.0625Iin+2.5;这样就能根据输出电阻的阻值获得当前电容的电压。
程序实现:
#define CAP_Max 235u //电容电压最大值235V
#define CAP_Num 32u //电容电压采集个数
#define Precision 8192u //13位精度
#define In_Res 50u //输入电阻50k
#define ADCOffset Precision/5 //ADC测量偏差 0.02*Precision*10
U16 Get_Cap_Value_Mv(uint32_t ADC_Value)
{
int tmp = 0;
if(ADC_Value<2.5/3.3*Precision) //2.5/3.3*Precision 是2.5V对应的ADC值
return 0;
//u=((ADC_Value*3.3/4096-2.5)*10000/625*50) 24表示24K电阻
//u%=u/Ud*100 Ud为电容最大值
tmp = ADC_Value*33-25*Precision-ADCOffset;
tmp = 10000*tmp/(CAP_Max*Precision*625/(10*In_Res));
// tmp = ADC_Value*33-204800-1639; //204800=2.5*8192*10 1638=0.02*8192*10
// tmp = 10000*tmp/(CAP_Max*10039); //8192*625/1000/51=10039
return (tmp&0xFFFF);
}
上面的程序是将ADC的测量值转换为电量的百分比,其中ADCOffset为ADC存在的偏差,当前偏差为0.02,
u16 filter(void)
{
u8 i;
uint32_t Sum=0;
for(i=0;i<CAP_Num;i++)
{
Sum+=CAP_Adc_List[i];
}
Sum>>=1;
return (u16)Sum/8;
}
程序filter是滤波函数
程序采用过采样的方法提高采集精度来达到降低ADC值的变化量,但是效果不是很明显,与平均值滤波的效果相近,可能在这个上面并不能体现的并不明显。
- adc调试
- STM32 ADC调试
- adc与触摸屏调试记录
- STM32之ADC调试日志
- MTK6580M 调试ADC mcp3421 I2C接口
- ADC
- ADC
- ADC
- ADC
- ADC
- ADC
- ADC
- avr mega644将ADC转换的结果通过串口调试显示
- [RK3288][Android6.0] 调试笔记 --- RT5640 I2S对应的ADC/DAC通路
- 关于ADC
- adc.exe
- 什么是ADC
- 什么是ADC?
- 高通Vuforia SDK 2.8已推出--新功能Extended Tracking
- SVN操作详细介绍
- 【cocos2d-x】TexturePacker 使用心得
- 【机器学习系列】python版PCA(主成分分析)
- C++dynamic_cast
- adc调试
- HDU 1598 find the most comfortable road
- ios开发 通信录AddressBook.framework
- Android -- service 利用广播调用服务的方法
- hdu 2604 - Queuing
- 市级人防信息化管理系统登陆上传至服务器
- 【Cocos2dx游戏开发】Cocos2d-x简介
- 黑马程序员---枚举类
- javascript实现页面内关键词高亮