📄 addo.c
字号:
#include<config.h>
#include<head.h>
#include<main.h>
#include "AdDo.h"
#include "cc1160.h"
#define ADBUFLEN 10
long pdata scale_adbuf[ADBUFLEN];
Uchar idata adsta_count=0;
SCALENOW pdata scalenow;//定义秤的当前值
FILSET pdata FilSet;
ADCHIP pdata adchip;
LINESET pdata LineSet;
BOOL lb_flag1=0,scalestaflag=0,voltlow=0,ShowWeiFlagEn=0,LineEnFlag=0;
void adinit()
{
// LoadData(adchip);
// LoadData(FilSet);
InitCS1160(adchip.gain,adchip.zero);
}
/**************************************************************************
* 函数原型: long FILAD(long scalem_ad1)
* 功 能: 移滑滤波
* 入口:当前AD值
* 出口:滤波后的AD值
**************************************************************************/
long FilAd(long scale_ad) //滤波
{
Uchar i;
for(i=0;i<ADBUFLEN-1;i++)
{
scale_adbuf[i]=scale_adbuf[i+1];
}
scale_adbuf[ADBUFLEN-1]=scale_ad;
for(i=0;i<ADBUFLEN-1;i++)
{
scale_ad+=scale_adbuf[i];
}
scale_ad=(scale_ad+ADBUFLEN/2)/ADBUFLEN;
scale_ad>>=4;
return scale_ad;
}
float AdDo(void)
{
long scale_ad;
scale_ad=FilAd(ReadAd());
if(scale_ad>0)
{
if(labs(scale_ad-scalenow.ad)<3)
{if((++adsta_count>5)){if(ShowWeiFlagEn)Dis_SetFlag(DIS_STA,1);}}
else {adsta_count=0;if(ShowWeiFlagEn)Dis_SetFlag(DIS_STA,0);}
scalenow.ad=scale_ad;
}
if(LineEnFlag)
{
if(scalenow.ad>LineSet.linedot0)
{
if(scalenow.ad>LineSet.linedot1)
{
scalenow.ad=((scalenow.ad-LineSet.linedot1)/LineSet.linerule1)
+(LineSet.linedot1-LineSet.linedot0)/LineSet.linerule0+LineSet.linedot0;
}
else scalenow.ad=(scalenow.ad-LineSet.linedot0)/LineSet.linerule0+LineSet.linedot0;
}
}
PostMessageOne(M_ADFILOK,0);
// scalenow.weight=(scalenow.ad-scalenow.zero)/CalSet.rule;
return scalenow.weight;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -