📄 test.lst
字号:
186 1 }
187
188
189
190 /*
191 *********************************************************************************************************
192 * RxTASK
193 *********************************************************************************************************
194 */
195
196 void RxTASK(void *cszdata) reentrant
197 {
198 1 INT8U ch;
199 1 INT8U err;
200 1 INT8U Flag=0x00;
201 1 INT8U CRCLEN;
202 1 INT8U H,L;
203 1 INT8U CMD;
204 1 INT16U LENCtr=0;
205 1 INT16U i=2;
206 1 INT16U CRC,k;
207 1 extern INT8U InBuf[130];
208 1 extern INT8U RESFlag;
209 1 extern INT8U OEFlag;
210 1
211 1 cszdata=cszdata;
212 1
213 1 for (;;)
214 1 {
215 2 ch=CommGetChar(OS_TICKS_PER_SEC,&err);
216 2 if(err==COMM_NO_ERR)
217 2 {
218 3 if(ch==0x1B)
219 3 {Flag=0x01;InBuf[0]=0x1B;}
220 3 else
221 3 {
222 4 if(Flag==0x01)
223 4 {LENCtr=(INT16U)ch;Flag=0x02;InBuf[1]=ch;}
224 4 else
225 4 {
226 5 if(LENCtr>0)
227 5 {InBuf[i]=ch;i++;LENCtr--;
228 6 if(LENCtr==0)
229 6 {Flag=0x00;CRCLEN=InBuf[1];k=(INT16U)InBuf[1];
230 7 CRC=cal_crc(InBuf,CRCLEN);
231 7 L=(INT8U)CRC;H=(INT8U)(CRC>>8);
232 7 if(H==InBuf[k] && L==InBuf[k+1])
233 7 {CMD=InBuf[2];
234 8 switch(CMD)
C51 COMPILER V7.50 TEST 03/06/2007 22:39:42 PAGE 5
235 8 {
236 9 case 0x01:RESFlag=0x01;break;
237 9 case 0x02:OEFlag =0x01;break;
238 9 case 0x03:OEFlag =0x02;break;
239 9 }
240 8 }
241 7 }
242 6 }
243 5 }
244 4 }
245 3 }
246 2 OSTimeDly(2);
247 2 }
248 1 }
249
250 /*
251 *********************************************************************************************************
252 * TxTASK
253 *********************************************************************************************************
254 */
255
256 void TxTASK(void *cszdata) reentrant
257 {
258 1
259 1 INT8U RES1[14]={0x1B,0x0C,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00};
260 1 INT8U H,L;
261 1 INT8U CRCLEN;
262 1 INT16U i,j;
263 1 INT16U CRC;
264 1 extern INT8U OutBuf[256];
265 1 extern INT8U RESFlag;
266 1 cszdata=cszdata;
267 1
268 1 for (;;)
269 1 {
270 2 switch(RESFlag)
271 2 {
272 3 case 0x01:CRCLEN=0x0C;
273 3 CRC=cal_crc(RES1,CRCLEN);
274 3 RES1[13]=(INT8U)CRC;
275 3 RES1[12]=(INT8U)(CRC>>8);
276 3 for(i=0;i<14;i++)
277 3 {CommPutChar(RES1[i],OS_TICKS_PER_SEC);}
278 3 RESFlag=0x00;break;
279 3
280 3 case 0x02:CRCLEN=OutBuf[1];
281 3 CRC=cal_crc(&OutBuf[0],CRCLEN);
282 3 j=(INT16U)OutBuf[1];
283 3 for(i=0;i<j;i++)
284 3 {CommPutChar(OutBuf[i],OS_TICKS_PER_SEC);}
285 3 L=(INT8U)CRC;H=(INT8U)(CRC>>8);
286 3 CommPutChar(H,OS_TICKS_PER_SEC);
287 3 CommPutChar(L,OS_TICKS_PER_SEC);
288 3 RESFlag=0x00;break;
289 3
290 3 case 0x03:CRCLEN=OutBuf[1];
291 3 CRC=cal_crc(&OutBuf[0],CRCLEN);
292 3 j=(INT16U)OutBuf[1];
293 3 for(i=0;i<j;i++)
294 3 {CommPutChar(OutBuf[i],OS_TICKS_PER_SEC);}
295 3 L=(INT8U)CRC;H=(INT8U)(CRC>>8);
296 3 CommPutChar(H,OS_TICKS_PER_SEC);
C51 COMPILER V7.50 TEST 03/06/2007 22:39:42 PAGE 6
297 3 CommPutChar(L,OS_TICKS_PER_SEC);
298 3 RESFlag=0x00;break;
299 3 }
300 2 OSTimeDly(2);
301 2 }
302 1
303 1 }
304
305 /*
306 *********************************************************************************************************
307 * OETASK
308 *********************************************************************************************************
309 */
310
311 void OETASK(void *cszdata) reentrant
312 {
313 1 INT8U H2,H1,L2,L1;
314 1 INT16U k;
315 1 INT16U i,j;
316 1 extern INT8U OutBuf[256];
317 1 extern INT8U InBuf[130];
318 1
319 1 cszdata=cszdata;
320 1
321 1 for (;;)
322 1 {
323 2 srand(TICKS);
324 2 switch(OEFlag)
325 2 {
326 3 case 0x01:OutBuf[0]=0x1B;
327 3 OutBuf[1]=InBuf[1]+0x04;
328 3 OutBuf[2]=0x02;
329 3 j=(INT16U)OutBuf[1];
330 3 H2=rand();
331 3 H1=rand();
332 3 L2=rand();
333 3 L1=rand();
334 3 OutBuf[3]=H2;
335 3 OutBuf[4]=H1;
336 3 OutBuf[5]=L2;
337 3 OutBuf[6]=L1;
338 3 for(i=7;i<j;i++)
339 3 {
340 4 OutBuf[i]=InBuf[i-4];
341 4 }
342 3 RESFlag=0x02;OEFlag=0x00;break;
343 3 case 0x02:OutBuf[0]=0x1B;
344 3 OutBuf[1]=InBuf[1];
345 3 OutBuf[2]=0x03;
346 3 j=(INT16U)InBuf[1];k=0;
347 3 H2=rand();
348 3 H1=rand();
349 3 L2=rand();
350 3 L1=rand();
351 3 OutBuf[3]=H2;
352 3 OutBuf[4]=H1;
353 3 OutBuf[5]=L2;
354 3 OutBuf[6]=L1;
355 3 for(i=7;i<j;i++)
356 3 {OutBuf[i]=InBuf[i];k++;}
357 3 OutBuf[1]=OutBuf[1]+(INT8U)k;
358 3 for(i=j;i<j+k;i++)
C51 COMPILER V7.50 TEST 03/06/2007 22:39:42 PAGE 7
359 3 {OutBuf[i]=InBuf[i-k];}
360 3 RESFlag=0x03;OEFlag=0x00;break;
361 3 }
362 2
363 2 OSTimeDly(2);
364 2 }
365 1
366 1 }
367
368
369
370
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2270 ----
CONSTANT SIZE = 78 ----
XDATA SIZE = 2437 6
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -