📄 taskrecurrent.lst
字号:
C51 COMPILER V7.06 TASKRECURRENT 01/22/2007 09:50:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TASKRECURRENT
OBJECT MODULE PLACED IN .\output\TaskRecurrent.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TaskRecurrent.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(.\output
-\TaskRecurrent.obj)
stmt level source
1 /*--------------文件信息--------------------------------------------------------------------------------
2 **文 件 名:
3 **创 建 人:
4 **最后修改日期:
5 **描 述:
6 **
7 **--------------历史版本信息----------------------------------------------------------------------------
8 ** 修改人:
9 ** 版 本:
10 ** 日 期:
11 ** 描 述:
12 **
13 **--------------当前版本修订------------------------------------------------------------------------------
14 ** 修改人:
15 ** 日 期:
16 ** 描 述:
17 **
18 **------------------------------------------------------------------------------------------------------
19 ********************************************************************************************************/
20 #define DATA
21 #include"includes.h"
22 /*********************************************************************************************************
23 ** 函数名称:
24 ** 功能描述:
25 ** 输 入:
26 ** 输 出:
27 ** 全局变量:
28 ** 调用模块:
29 ** 注 意:
30 ** 作 者:
31 ** 日 期:
32 **-------------------------------------------------------------------------------------------------------
33 ** 修改人:
34 ** 日 期:
35 **-------------------------------------------------------------------------------------------------------
36 *********************************************************************************************************/
37 unsigned char bdata PortAimg;
38 unsigned int ADCount;
39
40 sbit VCCE1 = PortAimg^0;
41 sbit VCCE3 = PortAimg^1;
42 sbit VCCE2 = PortAimg^2;
43 sbit EN422 = PortAimg^3;
44 sbit REL1E = PortAimg^4;
45 sbit REL2E = PortAimg^5;
46 sbit REL3E = PortAimg^6;
47 sbit REL4E = PortAimg^7;
48
49 sbit BEGIN_AD = P2^7;
50 sbit WATCHDOG = P2^6;
51 void TaskAD (void) _task_ 0
52 {
53 1 unsigned char i;
54 1 AUXR = 0x00;
C51 COMPILER V7.06 TASKRECURRENT 01/22/2007 09:50:00 PAGE 2
55 1 MeasureI = 0;
56 1 MeasureU = 0;
57 1 MeasureT = 0;
58 1 ErrorState = WITHOUT_ERROR;
59 1 State = EepromReadByte(E2State);
60 1 if(State>3)
61 1 {
62 2 State = STOP;
63 2 AmountQ10S = 0;
64 2 EepromWriteWord(E2AmountQ10S ,(unsigned int)(AmountQ10S>>16) );
65 2 EepromWriteWord(E2AmountQ10S +2,(unsigned int)AmountQ10S );
66 2 LastTimeS = 0;
67 2 EepromWriteWord(E2LastTimeS ,(unsigned int)(LastTimeS>>16) );
68 2 EepromWriteWord(E2LastTimeS +2,(unsigned int)LastTimeS );
69 2 }
70 1 Address = EepromReadByte(E2Address);
71 1 Step = EepromReadByte(E2Step);
72 1 ProgramNo = EepromReadByte(E2ProgramNo);
73 1 RemainLoopTimes = EepromReadByte(E2RemainLoopTimes);
74 1 AmountQ10S = EepromReadWord(E2AmountQ10S);
75 1 AmountQ10S = AmountQ10S<<16;
76 1 AmountQ10S = AmountQ10S | EepromReadWord(E2AmountQ10S + 2);
77 1 LastTimeS = EepromReadWord(E2LastTimeS);
78 1 LastTimeS = LastTimeS<<16;
79 1 LastTimeS = LastTimeS | EepromReadWord(E2LastTimeS +2);
80 1 SetupCurrentDirection = EepromReadWord(E2SetupCurrentDirection);
81 1
82 1 Ub = EepromReadWordA(E2Ub);
83 1 Ib = EepromReadWordA(E2Ib);
84 1 Tb = EepromReadWordA(E2Tb);
85 1 Uk = EepromReadWordA(E2Uk);
86 1 Ik = EepromReadWordA(E2Ik);
87 1 Tk = EepromReadWordA(E2Tk);
88 1 DAk = EepromReadWordA(E2DAk);
89 1 DAb = EepromReadWordA(E2DAb);
90 1 SetupDA(0);
91 1 os_create_task (1);
92 1 os_create_task (2);
93 1 os_create_task (3);
94 1 os_create_task (4);
95 1 os_create_task (5);
96 1 for(i = 0;i<10;i++)
97 1 {
98 2 Ibuf5Second[i].Record = 4095;
99 2 Ibuf5Second[i].Sequence = i+1;
100 2 Ubuf5Second[i].Record = 4095;
101 2 Ubuf5Second[i].Sequence = i+1;
102 2 Tbuf5Second[i].Record = 4095;
103 2 Tbuf5Second[i].Sequence = i+1;
104 2 }
105 1 while (1)
106 1 {
107 2 WATCHDOG = !WATCHDOG;
108 2 BEGIN_AD = 0;
109 2 VCCE1 = 0;VCCE2 = 0;VCCE3 = 0;WriteOutXRAM(CPLD_PORT_A,PortAimg);
110 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
111 2 VCCE1 = 0;VCCE2 = 0;VCCE3 = 1;WriteOutXRAM(CPLD_PORT_A,PortAimg);
112 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
113 2 BEGIN_AD = 1;
114 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
115 2 ADCount = ReadOutXRAM(CPLD_ADCOUNT_HIGH);
116 2 ADCount = ADCount<<8;
C51 COMPILER V7.06 TASKRECURRENT 01/22/2007 09:50:00 PAGE 3
117 2 ADCount = ADCount|ReadOutXRAM(CPLD_ADCOUNT_LOW);
118 2 IRealCount = ADCount;
119 2 IAverage5SecondCount = MidstStruct(Ibuf5Second, 10,IRealCount);
120 2 if(Debug)
121 2 {
122 3 MeasureI = ClaculateSub(IRealCount,Ib,Ik);
123 3 }
124 2 else
125 2 {
126 3 MeasureI = ClaculateSub(IAverage5SecondCount ,Ib,Ik);
127 3 }
128 2
129 2 BEGIN_AD = 0;
130 2 VCCE1 = 0;VCCE2 = 0;VCCE3 = 0; WriteOutXRAM(CPLD_PORT_A,PortAimg);
131 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
132 2 VCCE1 = 0;VCCE2 = 1;VCCE3 = 0; WriteOutXRAM(CPLD_PORT_A,PortAimg);
133 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
134 2 BEGIN_AD = 1;
135 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
136 2 ADCount = ReadOutXRAM(CPLD_ADCOUNT_HIGH);
137 2 ADCount = ADCount<<8;
138 2 ADCount = ADCount|ReadOutXRAM(CPLD_ADCOUNT_LOW);
139 2 URealCount = ADCount;
140 2 UAverage5SecondCount = MidstStruct(Ubuf5Second,10,URealCount);
141 2 MeasureU = ClaculateSub(UAverage5SecondCount ,Ub,Uk);
142 2 MeasureRealU = ClaculateSub(URealCount,Ub,Uk);
143 2 BEGIN_AD = 0;
144 2 VCCE1 = 0;VCCE2 = 0;VCCE3 = 0; WriteOutXRAM(CPLD_PORT_A,PortAimg);
145 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
146 2 VCCE1 = 1;VCCE2 = 0;VCCE3 = 0; WriteOutXRAM(CPLD_PORT_A,PortAimg);
147 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
148 2 BEGIN_AD = 1;
149 2 os_wait (K_TMO, 50/OS_MSEL_PER_TICKS, 0);
150 2 ADCount = ReadOutXRAM(CPLD_ADCOUNT_HIGH);
151 2 ADCount = ADCount<<8;
152 2 ADCount = ADCount|ReadOutXRAM(CPLD_ADCOUNT_LOW);
153 2 TRealCount = ADCount;
154 2 TAverage5SecondCount = MidstStruct(Tbuf5Second,10,TRealCount);
155 2 if(Debug)
156 2 {
157 3 MeasureTU = ClaculateSub(TRealCount,Tb,Tk);
158 3 }
159 2 else
160 2 {
161 3 MeasureTU = ClaculateSub(TAverage5SecondCount,Tb,Tk);
162 3 }
163 2 //计算温度传感器电压信号所对应的温度
164 2 if(MeasureTU<1000)
165 2 {
166 3 MeasureT = 0;
167 3 }
168 2 else if(MeasureTU>1000 && MeasureTU<5000)
169 2 {
170 3 MeasureT = (MeasureTU-1000)/4;
171 3 }
172 2 else
173 2 {
174 3 MeasureT = 999;
175 3 }
176 2 }//while(1)
177 1 }
178
C51 COMPILER V7.06 TASKRECURRENT 01/22/2007 09:50:00 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1231 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 206 ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
IDATA SIZE = 43 ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -