在实验运行7.1章节例程时 [CW32数字电压电流表软件进阶教程-1.电压电流同时显示] ,会发现实时显示更新的数据是当前采集值,并未做数据滤波处理。由于采集到的原始数据有一定的波动,因此在显示更新速度较快时,数字有跳动现象。
因此,在数据处理前,可以增加常见的均值滤波算法。均值滤波原理在实验七中已有讲述。
在7.1实验例程基础上,增加均值滤波的核心代码如下:
void Volt_Cal(void)
{
V_Buffer = Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波
I_Buffer = Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波
V_Buffer = (V_Buffer * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
// 四舍五入
if(V_Buffer % 10 >= 5)
{
V_Buffer = V_Buffer / 10 + 1;
}
else
{
V_Buffer = V_Buffer / 10;
}
I_Buffer=I_Buffer * ADC_REF_VALUE > > 12;
/**
mv =I_Buffer * ADC_REF_VALUE > > 12,
R = 100mr,
10ma = mv/R/10=mv/0.1/10 = mv
*/
}
在上述例程中,可以看到使用了均值滤波函数:
Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波
Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波
其中,原始数据为每1MS采集一个数据点,共采集100次,即100MS内的定时数据值。单点数据采集在定时器BTIM1中断函数中完成。
均值滤波函数定义如下:
uint32_t Mean_Value_Filter(uint16_t *value, uint32_t size) //均值滤波
{
uint32_t sum = 0;
uint16_t max = 0;
uint16_t min = 0xffff;
int i;
for(i = 0; i < size; i++)
{
sum += value[i];
if(value[i] > max)
{
max = value[i];
}
if(value[i] < min)
{
min = value[i];
}
}
sum -= max + min;
sum = sum / (size - 2);
//if(sum >1)sum+=4; 后期校准
return sum;
}
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
数据采集
+关注
关注
40文章
7824浏览量
119895 -
定时器
+关注
关注
23文章
3361浏览量
121765 -
均值滤波
+关注
关注
0文章
10浏览量
7247 -
CW32
+关注
关注
1文章
281浏览量
1681
发布评论请先 登录
相关推荐
热点推荐
CW32 电容式触摸按键设计指南
前言 CW32 电容式触摸按键设计指南向客户提供一种利用 CW32 内部资源结合软件编程实现电容式触摸按键有效 触摸检测的方法。本指南的内容重点在于工作原理、软件检测过程以及调试指引。
发表于 12-09 06:53
CW32 MCU温度监测应用
最近,我在项目中使用CW32 MCU,来实现一个简单的温度监测系统。CW32的灵活性和性能让我在这个应用中得心应手。以下是我的实现过程和代码示例。
应用简介本项目通过连接一个温度传感器LM35来实时
发表于 12-03 08:03
基于芯源半导体MCU cw32芯片制作的USB电压电流表
1、项目功能介绍
基于芯源半导体MCU cw32芯片制作 USB电压电流表
基于芯源半导体MCU cw32芯片+INA199芯片制作 USB电压电流表,精度1%。可以检测
发表于 12-02 06:39
CW32 MCU的工作电压、工作温度是多少?
CW32通用型MCU工作电压是1.65V~5.5V,射频MCU工作电压则是1.8V/2.2V~3.6V;通用型CW32F系列MCU,比如:CW
发表于 11-12 06:49
逆变器中电压电流传感器应用
前言:逆变器作为一个组件,有很多的应用领域,也是新能源系统的一个重要单元。逆变器的性能直接影响电池利用率、设备的使用寿命。电压、电流传感器作为逆变器重要的“感知器官”,实时的监测、反馈关键参数,并由
INA232 高精度数字电流/电压/功率监测器技术解析与应用指南
Texas Instruments INA232电流/电压/功率监控器是一款16位数字电流监控器,具有兼容I^2^C/SMBus的接口。该器
电容降压式直流稳压电源__电容值&电流计算与稳压电路
廉、可靠性高、无干扰辐射等明显优势。本文给出了降压电容与输出电流的简单计算公式,并设计需求电流>30mA 的稳压电路,在交流输入上、下限电压
发表于 06-19 16:35
电压环路:电池 → 升压电路 → 降压电路 → 电池
因产品需要,设计电路产生了疑难问题。例如:一12v电池接DC-DC升压电路,电压升至18v。输出又接一DC-DC降压电路,降至12v,输出又接至电池。由于电压不可能精准等于理想
发表于 06-13 09:16
常规的电压电流测量方式有哪些?
常规的电压电流测量通常采用均值检波法、峰值检波法、真有效值法三种方式,本文对比每种方式适应场合以及优势。 一均值检波法 采用均值检波法将交流
高压电阻箱如何进行负载测试?
的额定范围内。
进行负载测试:逐渐增加负载电阻的阻值,观察电压表和电流表的变化。记录不同负载条件下的电压和电流值,并计算相应的功率因数。
分
发表于 01-16 12:34

CW32数字电压电流表软件进阶教程-2.电压电流值做均值滤波
评论