打印

请教C:关于滑动平均

[复制链接]
2223|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
haysion|  楼主 | 2007-5-14 19:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mohanwei| | 2007-5-14 20:46 | 只看该作者

那就不滑动……累加N,取平均。

滑动滤波就是这么耗RAM的了。

用什么滤波方式,得看具体的模型,合适的就是最好的。

使用特权

评论回复
板凳
lbx_00| | 2007-5-14 20:59 | 只看该作者

ram不够?

寄存器区的许多地址是空闲的,可以用

使用特权

评论回复
地板
computer00| | 2007-5-14 21:49 | 只看该作者

16*4=64字节也不是很多呀

使用特权

评论回复
5
haysion|  楼主 | 2007-5-15 10:19 | 只看该作者

我将几个long型的全局变量改成局部的,结果data不减,都是108

使用特权

评论回复
6
haysion|  楼主 | 2007-5-15 10:20 | 只看该作者

漏了说谢谢指点

不能读N次再取均值啊,那样程序运行起来就慢了,读的AD值就不够实时了>_<

使用特权

评论回复
7
computer00| | 2007-5-15 12:49 | 只看该作者

你的什么AD? 要32位这么高精度?

使用特权

评论回复
8
haysion|  楼主 | 2007-5-15 16:05 | 只看该作者

读到的数据是24位的,所以用了4字节的数据来储存......

使用特权

评论回复
9
mohanwei| | 2007-5-15 18:57 | 只看该作者

24位,3个字节就可以了。单片机,不能当PC来用的

有时候用一些非常规手段也是有必要的。把读取到的数据放到一个Byte数组里,然后取数的时候自己知道偏移量是3……

使用特权

评论回复
10
haysion|  楼主 | 2007-5-16 10:02 | 只看该作者

谢谢了,我试试改用3字节的联合体

#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
#include <math.h>

#define uchar unsigned char

……  //显示数组定义

bit mod;

union datam
{
    unsigned long all;
    uchar byte[4];
};

union datam zreg, freg;  //zreg保存零点AD值均值,freg保存标称AD值均值
union datam dreg[10];  //保存连续10次读取的AD值

float slope;  //保存AD值-重量函数的斜率

……  //端口、按键及子程序定义

main()
{
    uchar count;  //count用于计数
    unsigned long r_ad;  //保存AD值的均值
    unsigned long d_ad;  //保存所需显示的AD值均值
    unsigned long we;  //we保存重量值
…… //程序
……
}

…… // 各子程序
……
……

子程序中出现过的数据定义(各子程序用*号隔开表示):

uchar i;
**************
uchar i;
uchar rdata = 0;
**************
uchar i;
union datam gdata;
**************
uchar i;
unsigned long ave;
**************
uchar i;
**************
uchar i, da;
**************
uchar i;
**************
uchar i;
**************
unsigned long f;
**************
uchar i,j;
unsigned long ma;
**************
unsigned long m;
float w;
**************
uchar i;
**************
uchar i;
**************
uchar i;
unsigned long avera;
**************
uchar i, dis;
**************
uchar i;
**************
uchar i;
**************
uchar i;
**************
int t, h;
**************

为什么程序的ram用到了108.1那么多?哪位大虾有空看看,或者给点意见^_^

使用特权

评论回复
11
xxdcq| | 2007-5-19 11:38 | 只看该作者

ram选得只要能装下滑动窗的宽度就可以了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

25

帖子

0

粉丝