📄 alamc.lst
字号:
###############################################################################
# #
# 04/Dec/2008 16:07:52 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION #
# Copyright 1999-2007 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = E:\ELE\yten\pro\app\ALAMC.C #
# Command line = E:\ELE\yten\pro\app\ALAMC.C -D EMB_FLASH -lcN #
# E:\ELE\yten\pro\Release\List\ -o #
# E:\ELE\yten\pro\Release\Obj\ --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian little --cpu Cortex-M3 #
# -e --fpu None --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\DLib_Config_Normal.h" -I #
# E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I #
# "C:\Program Files\IAR Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\" -On #
# List file = E:\ELE\yten\pro\Release\List\ALAMC.lst #
# Object file = E:\ELE\yten\pro\Release\Obj\ALAMC.o #
# #
# #
###############################################################################
E:\ELE\yten\pro\app\ALAMC.C
1 #include"ytep.h"
2 #include"ytepfunction.h"
3 #define yt_Alamc_file
4 const Int16U ALA_TEM_TAB[]={0,4,8, 13,17,21, 26,30,34, 39,43,47, 52,56,60};
5 #define BELL_ON GPIOA->ODR|=1
6 #define BELL_OFF GPIOA->ODR&=0XFFFE
7 /////////////////////////////////////////
8
9 Int16U ALAMCREGISTER(Int8U *HourMin,Int16U *p,TIM *pos,Int16U *point)
10 {
11 Int16U a,b,c,d;
12 static Int16U a_buf=0;
13 a=*point|*(point+1)|*(point+2)|*(point+3);
14 b=a^a_buf;
15 if(b==0)return 0; //
16 a_buf=a;
17 for(c=0;c<12;++c)
18 {
19 if((a&1)&&(b&1))
20 {
21 d=2*c;
22 pos->Tem[d+1]=pos->Tem[d];
23 pos->Tem[d]=*(p+ALA_TEM_TAB[c]);
24 pos->HOUR[d+1]=pos->HOUR[d];
25 pos->HOUR[d]=*(HourMin+1);
26 pos->MIN[d+1]=pos->MIN[d];
27 pos->MIN[d]=*HourMin;
28
29 pos->Flag[d+1]=pos->Flag[d];
30 pos->Flag[d]=C_TEST_ALA_HIS;
31 }
32 a>>=1,b>>=1;
33 }
34 return 0;
35 }
36
37
38 //////////////////////////////////////////
39
40 Int16U Fast_TEM_NOTS(Int16U n,Int16U m,Int16U *p,SensorRF *pos)
41 {
42 static Int16U FTimer,sw;
43 static Int8U FNOT[12][10];
44 static Boolean B_start=0;
45 Int16U a,b,c;
46 if(B_start==0)
47 {
48 B_start=1;
49 for(a=0;a<12;++a)
50 FNOT[a][0]=FNOT[a][1]=FNOT[a][2]=FNOT[a][3]=FNOT[a][4]=FNOT[a][5]=FNOT[a][6]=FNOT[a][7]=FNOT[a][8]=FNOT[a][9]=0xff;
51 }
52 m=m*6;
53 if(++FTimer>=m)FTimer=0,sw=12;//温升过快的时间单位值/10
54 if(sw>12)sw=12;
55 if(sw!=0)
56 {
57 m=sw-1;
58 for(a=0;a<9;++a)
59 FNOT[m][9-a]=FNOT[m][8-a];
60 }
61 switch (sw)
62 {
63
64
65 case 12:
66 FNOT[m][0]=pos->ATem;
67 break;
68 case 11:
69 FNOT[m][0]=pos->BTem;
70 break;
71 case 10:
72 FNOT[m][0]=pos->CTem;
73 break;
74 case 9:
75 ++pos;
76 FNOT[m][0]=pos->ATem;
77 break;
78 case 8:
79 ++pos;
80 FNOT[m][0]=pos->BTem;
81 break;
82 case 7:
83 ++pos;
84 FNOT[m][0]=pos->CTem;
85 break;
86 case 6:
87 pos+=2;
88 FNOT[m][0]=pos->ATem;
89 break;
90 case 5:
91 pos+=2;
92 FNOT[m][0]=pos->BTem;
93 break;
94 case 4:
95 pos+=2;
96 FNOT[m][0]=pos->CTem;
97 break;
98 case 3:
99 pos+=3;
100 FNOT[m][0]=pos->ATem;
101 break;
102 case 2:
103 pos+=3;
104 FNOT[m][0]=pos->BTem;
105 break;
106 case 1:
107 pos+=3;
108 FNOT[m][0]=pos->CTem;
109 break;
110 case 0:
111 return 0;
112 return 0;
113 }
114 b=c=0XFF;
115 for(a=0;a<10;++a)
116 {
117 if(b==0xff)b=FNOT[m][a];
118 if(c==0xff)c=FNOT[m][a];
119 if(b<=FNOT[m][a]&&FNOT[m][a]<0xfe)b=FNOT[m][a];
120 if(c>=FNOT[m][a]&&FNOT[m][a]<0xfe)c=FNOT[m][a];
121 }
122 a=12-sw;
123 a=1<<a;
124 if(b!=0xff&&c!=0xff)
125 {
126 if(b>(c+n))*p|=a;
127 else *p&=~a;
128 }
129 sw--;
130 return 0;
131
132
133
134 }
135 /////////////////////////////////////////
136 void AlamcFault(SensorRF *A,_yt *B,Int8U *HOUR_MIN)//5s
137 {
138 static Int8U ala[4][16];
139 SensorRF *A_BUF;
140 Int16U i,m,Q,V,S;
141
142 A_BUF=A;
143 for(i=0;i<C_RF_MAX_COUNT;++i)
144 {
145 if(i==0||i==3||i==6||i==9)Q=A->ATem+C_TEMP_JUST,V=A->AVol;
146 if(i==1||i==4||i==7||i==10)Q=A->BTem+C_TEMP_JUST,V=A->BVol;
147 if(i==2||i==5||i==8||i==11)Q=A->CTem+C_TEMP_JUST,V=A->CVol,A++;
148 if(V>=21)S=28;
149 else S=10;
150 if(Q>=(B->_TemFault+C_TEMP_JUST)&&Q<0xfe)
151 {
152 if(ala[0][i]<C_RF_MAX_COUNT)ala[0][i]++;
153 }
154 else
155 if(ala[0][i]>0)
156 {
157 if(ala[0][i]>10)ala[0][i]=10;
158 --ala[0][i];//事件故障
159 }
160 if(Q>=(B->_TemOver+C_TEMP_JUST)&&Q<0xfe)
161 {
162 if(ala[1][i]<C_RF_MAX_COUNT)ala[1][i]++;
163 }
164 else
165 if(ala[1][i]>0)//预防故障
166 {
167 if(ala[1][i]>10)ala[1][i]=10;
168 --ala[1][i];
169 }
170
171 if(Q>=(B->_TemRoom+A_Tembuf)&&Q<0xfe)
172 {
173 if(ala[2][i]<C_RF_MAX_COUNT)ala[2][i]++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -