标题: C语言如何自动的把前20次的采样值放入数组中? [打印本页]

作者: 胖伟    时间: 2019-11-1 14:54
标题: C语言如何自动的把前20次的采样值放入数组中?
题为:从传感器每次采样后,对前面20次采样做平均值运算,运算方法为:去掉最高值、去掉最低值、剩下的值累加取平均值。
小弟现在卡在了如何自动的把前20次的采样值放入数组中,求大神指点。谢谢

作者: wulin    时间: 2019-11-1 16:52
unsigned char data dis_buf[20];
unsigned char i;
for(i=0;i<19;i++)
{
        dis_buf[i]=dis_buf[i+1];
}   
dis_buf[19]=ADC();
作者: logan0279    时间: 2019-11-1 17:22
有点没看懂啊,把每次采样的结果赋值给数组不就可以了吧
作者: 厉害哥哥    时间: 2019-11-2 00:17
编程
定义一个 数组20位的数组,数据类型注意选择。
定义一个函数专门处理你所说的问题
    内部用for循环控制写入数组的数据个数(内部调用 与通信有关的函数,如串口)

作者: 胖伟    时间: 2019-11-3 09:56
wulin 发表于 2019-11-1 16:52
unsigned char data dis_buf[20];
unsigned char i;
for(i=0;i

谢谢 大佬
作者: 胖伟    时间: 2019-11-3 09:57
厉害哥哥 发表于 2019-11-2 00:17
编程
定义一个 数组20位的数组,数据类型注意选择。
定义一个函数专门处理你所说的问题

谢谢 您的建议

作者: 胖伟    时间: 2019-11-3 10:02
logan0279 发表于 2019-11-1 17:22
有点没看懂啊,把每次采样的结果赋值给数组不就可以了吧

谢谢您的回复
我的意思是从传感器那采20次的值自动放到数组中,然后进行运算,然后从第21次开始,数组中的值就是从第二次的值到第21次的值,以此类推。     我主要是没搞明白咋么把第一次的值去掉,从而换成第21次的值。
作者: jinwe    时间: 2019-11-3 22:38
for(i=0;i<19;i++)
{
        dis_buf[i]=dis_buf[i+1];
}   
dis_buf[19]=ADC();
这就是你想要的啊,前20次存入了数组,第21次开始,从2次开始往前移,空出最后一个来,把第20次加进去




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1