📄 addo.lst
字号:
C51 COMPILER V8.02 ADDO 05/04/2008 21:35:45 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ADDO
OBJECT MODULE PLACED IN AdDo.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE AdDo.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<config.h>
2 #include<head.h>
3 #include<main.h>
4 #include "AdDo.h"
5 #include "cc1160.h"
6 #define ADBUFLEN 10
7 long pdata scale_adbuf[ADBUFLEN];
8 Uchar idata adsta_count=0;
9
10 SCALENOW pdata scalenow;//定义秤的当前值
11 FILSET pdata FilSet;
12 ADCHIP pdata adchip;
13 LINESET pdata LineSet;
14 BOOL lb_flag1=0,scalestaflag=0,voltlow=0,ShowWeiFlagEn=0,LineEnFlag=0;
15 void adinit()
16 {
17 1 // LoadData(adchip);
18 1 // LoadData(FilSet);
19 1 InitCS1160(adchip.gain,adchip.zero);
20 1 }
21 /**************************************************************************
22 * 函数原型: long FILAD(long scalem_ad1)
23 * 功 能: 移滑滤波
24 * 入口:当前AD值
25 * 出口:滤波后的AD值
26 **************************************************************************/
27 long FilAd(long scale_ad) //滤波
28 {
29 1 Uchar i;
30 1 for(i=0;i<ADBUFLEN-1;i++)
31 1 {
32 2 scale_adbuf[i]=scale_adbuf[i+1];
33 2 }
34 1 scale_adbuf[ADBUFLEN-1]=scale_ad;
35 1 for(i=0;i<ADBUFLEN-1;i++)
36 1 {
37 2 scale_ad+=scale_adbuf[i];
38 2 }
39 1 scale_ad=(scale_ad+ADBUFLEN/2)/ADBUFLEN;
40 1 scale_ad>>=4;
41 1 return scale_ad;
42 1 }
43
44 float AdDo(void)
45 {
46 1 long scale_ad;
47 1 scale_ad=FilAd(ReadAd());
48 1 if(scale_ad>0)
49 1 {
50 2 if(labs(scale_ad-scalenow.ad)<3)
51 2 {if((++adsta_count>5)){if(ShowWeiFlagEn)Dis_SetFlag(DIS_STA,1);}}
52 2 else {adsta_count=0;if(ShowWeiFlagEn)Dis_SetFlag(DIS_STA,0);}
53 2 scalenow.ad=scale_ad;
54 2 }
55 1 if(LineEnFlag)
C51 COMPILER V8.02 ADDO 05/04/2008 21:35:45 PAGE 2
56 1 {
57 2 if(scalenow.ad>LineSet.linedot0)
58 2 {
59 3 if(scalenow.ad>LineSet.linedot1)
60 3 {
61 4 scalenow.ad=((scalenow.ad-LineSet.linedot1)/LineSet.linerule1)
62 4 +(LineSet.linedot1-LineSet.linedot0)/LineSet.linerule0+LineSet.linedot0;
63 4 }
64 3 else scalenow.ad=(scalenow.ad-LineSet.linedot0)/LineSet.linerule0+LineSet.linedot0;
65 3 }
66 2 }
67 1 PostMessageOne(M_ADFILOK,0);
68 1 // scalenow.weight=(scalenow.ad-scalenow.zero)/CalSet.rule;
69 1 return scalenow.weight;
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 624 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = 77 ----
DATA SIZE = ---- 8
IDATA SIZE = 1 ----
BIT SIZE = 5 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -