文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>AD采样滤波的简单处理

AD采样滤波的简单处理

时间:2010-06-30  来源:Etual

最近对于AD采样滤波处理有了个新的思路更加方便,其实说白了就是体育比赛的

积分规则,10个裁判,去掉最高分和最低分,剩下的8个裁判的分取平均值

代码如下

 

BYTE ad_data;
BYTE ad_sample_cnt;
BYTE ad_value_min;
BYTE ad_value_max;
WORD ad_value_sum;

void GetAdData(void)
{
    AD_START = 1;
    WAIT1 AD_START;

    ad_data = ADCR;
}


void ad_proc(void)
{
    GetAdData();  // 首先得到AD的数值,平台不同而不同

    if (ad_sample_cnt ==0) // 判断是不是第一,是的话设置最大最小值
    {
        ad_value_min = ad_data; 

        ad_value_max = ad_data;
    }
    if (ad_data < ad_value_min){ // 对比看是否比最小值小则保存
        ad_value_min = ad_data;
    }
    if (ad_data > ad_value_max){ // 同上,找最大值
        ad_value_max = ad_data;
    }

    ad_value_sum += ad_data; // 所有的数据累加起来

    ad_sample_cnt++;
    if (ad_sample_cnt >9) // 采样10个数据

    {
        // sub max and min

        ad_value_sum -= ad_value_min; // 去掉最大最小值
        ad_value_sum -= ad_value_max;
        ad_value_sum >>= 3; // 剩下的8个数据的和,然后除以8,右移3位就是除以8了,避免做除法。ad_value_sum/8

        // ad_value_sum 里面放的就是结果了。
        // init
        ad_sample_cnt = 0;
        ad_value_min = 0;
        ad_value_max = 0;
        ad_value_sum = 0;
    }
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载