📄 main.lst
字号:
190 2
191 2
192 2 ADC_data[AMX2SL] = AD2WINT;//获取比较器的值
193 2 AD2WINT = 0;//清比较器
194 2
195 2 }while(AMX2SL!=7);
196 1
197 1 //////////////////////////////////////////
198 1 k = 0;
199 1
200 1
201 1 ///////////////////////////////////////////////////////////////////
202 1 if(!trig_delay) //始端触发
203 1 {
204 2 if(!trig_ch) //设置的触发字为单级触发字
205 2 {
206 3
207 3 if(!wflag) //尚未开始写FIFO
208 3 {
209 4 for(i=0;i<8;i++) //判断所采数据是否与触发字相同
210 4 {
211 5 if(ADC_data[i]!=trig_word[i])
212 5 break;
213 5 else k++;
214 5 }
215 4 if(k==8)
216 4 wflag = 1;
217 4 }
218 3
219 3
220 3 if(wflag) //写FIFO
221 3 {
222 4 if(FIFO_length()<DEPTH)
223 4 {
224 5 WriteFIFO(ADC_data);
225 5 }
226 4 }
227 3 }
228 2 ////////////////////////////////////////////////////////////////////////////
229 2 else //if(trig_ch) 设置的触发字为三级触发字
230 2 {
231 3 if(wflag!=3)
232 3 {
233 4 for(i=0;i<2;i++)
234 4 {
235 5 if(ADC_data[ch[i]]!=trig_word[a])
236 5 break;
237 5 else a++;
238 5 }
239 4 if(((a==2)&&(wflag==0))||((a==4)&&(wflag==1))||((a==6)&&(wflag==2)))
240 4 {
241 5 wflag++;
C51 COMPILER V8.02 MAIN 07/26/2008 19:16:14 PAGE 5
242 5 WriteFIFO(ADC_data);
243 5 }
244 4 else if(a==1) a = 0;
245 4 else if((a==3)||((a==2)&&(wflag==1))) {a = 0; ReadFIFO(buf);wflag--;}
246 4 else if((a==5)||((a==4)&&(wflag==2))) {a = 0; ReadFIFO(buf);ReadFIFO(buf);wflag-=2;}
247 4 }
248 3 else
249 3 {
250 4 if(FIFO_length()<DEPTH)
251 4 {
252 5 WriteFIFO(ADC_data);
253 5 }
254 4 }
255 3 if(a==6)
256 3 a = 0;
257 3 h = FIFO_length();
258 3 }
259 2 }
260 1 /////////////////////////////////////////////////////////////////////////
261 1 else //if(trig_delay) 非始端触发
262 1 {
263 2 if(!trig_ch) //单级触发
264 2 {
265 3 if(wflag!=trig_delay)
266 3 {
267 4 WriteFIFO(ADC_data);
268 4 wflag++;
269 4 }
270 3 else
271 3 {
272 4 for(i=0;i<8;i++) //判断所采数据是否与触发字相同
273 4 {
274 5 if(ADC_data[i]!=trig_word[i])
275 5 break;
276 5 else m++;
277 5 }
278 4 if(m==8)
279 4 wflag++;
280 4 else {WriteFIFO(ADC_data);ReadFIFO(buf);}
281 4 if(wflag==trig_delay+1)
282 4 {
283 5 if(FIFO_length()<DEPTH)
284 5 WriteFIFO(ADC_data);
285 5 }
286 4 }
287 3 }
288 2
289 2 /////////////////////////////////////////////////////////////////////////
290 2 else //三级触发
291 2 {
292 3 if(wflag<trig_delay)
293 3 {
294 4 WriteFIFO(ADC_data);
295 4 wflag++;
296 4 }
297 3 else
298 3 {
299 4 if(wflag!=2+trig_delay)
300 4 {
301 5 for(i=0;i<2;i++)
302 5 {
303 6 if(ADC_data[ch[i]]!=trig_word[a])
C51 COMPILER V8.02 MAIN 07/26/2008 19:16:14 PAGE 6
304 6 break;
305 6 else a++;
306 6 }
307 5 if(((a==2)&&(wflag==trig_delay-1))||((a==4)&&(wflag==trig_delay))||((a==6)&&(wflag==1+trig_delay)))
308 5 {
309 6 wflag++;
310 6 WriteFIFO(ADC_data);
311 6 }
312 5
313 5 else if(a==1)
314 5 {
315 6 a = 0;
316 6 WriteFIFO(ADC_data);
317 6 ReadFIFO(buf);
318 6 }
319 5 else if((a==3)||((a==2)&&(wflag==trig_delay))) {a = 0; WriteFIFO(ADC_data);ReadFIFO(buf);wflag--;}
320 5 else if((a==5)||((a==4)&&(wflag==trig_delay+1))) {a = 0; WriteFIFO(ADC_data);ReadFIFO(buf);wfla
-g-=2;}
321 5
322 5 /*
323 5 else
324 5 {
325 5 a = 0;
326 5 wflag = 0;
327 5 FIFO_Init();
328 5 }
329 5
330 5 */
331 5
332 5 }
333 4 else
334 4 {
335 5 if(FIFO_length()<DEPTH)
336 5 {
337 6 WriteFIFO(ADC_data);
338 6 }
339 5 }
340 4 if(a==6)
341 4 a = 0;
342 4
343 4 }
344 3 }
345 2 }
346 1 }
347
348
349
350
351
352
353
354 /********************************************
355 放置fifowindow (未测试)
356 *********************************************/
357 void PlaceWindow(void)
358 {
359 1 unsigned char i,j;
360 1
361 1 for(i=0;i<20;i++)
362 1 {
363 2 ReadFIFO(buf);
364 2 for(j=0;j<8;j++)
C51 COMPILER V8.02 MAIN 07/26/2008 19:16:14 PAGE 7
365 2 {
366 3 fifowindow[j][i] = buf[j];
367 3 }
368 2 }
369 1 }
370
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1467 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 18 ----
PDATA SIZE = ---- ----
DATA SIZE = 2 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -