⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addo.c

📁 电子称重的程序
💻 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 + -