📄 cmdr6c.lst
字号:
177
178 while((DOUT)&&(!TIMERINT));
179 _stopBit();
C51 COMPILER V7.09 CMDR6C 09/11/2007 09:30:23 PAGE 4
180 // while((DOUT)); _stopBit();
181 // DOUT = 1;
182 while((DOUT));
183 _trans1();
184 // _clrTimer();
185 if(0==i)
186 {
187 TH0 = 0xeA;
188 TL0 = 0x66; //16ms
189 clrTimer();
190 _setTimer(2);
191 while ((!ERR)&&(!TIMERINT));
192 if (ERR)
193 {
194 while ((ERR)&&(!TIMERINT));
195 if (!ERR)
196 { //err pulse (typ. 18us) detected
197 ASICRDY = 1;
198 TH0 = 0xeA; TL0 = 0x66; //16ms
199 _setTimer(2);
200 }
201 }
202 }
203 else
204 {
205 ASICRDY = 1;
206 TH0 = 0xeA; TL0 = 0x66; //16ms
207 _setTimer(2);
208 }
209 if(ASICRDY)
210 {
211 while((!TAGRDY)&&(!TIMERINT))
212 {
213 if (_findS2())
214 {
215 TAGRDY=1;
216 TH0 = 0xdc; TL0 = 0x80; //16ms
217 _setTimer(4);
218 break;
219 }
220 }
221 }
222 if(TAGRDY)
223 {
224 TAGDONE=0;
225 bitcnt=0;
226 Bytecnt = 3;
227 // Bytecnt=pcdata[0]; //Bytecounter keeps track of nr of bytes stored .
228 //It's value is nr of bytes -1 (i.e. the value in [o])
229 m = 0;
230 while ((!TAGDONE)&&(!TIMERINT))
231 {
232 bitval =_readbit();
233 switch (bitval)
234 {
235 case 0x02:
236 b_col = 1;
237 push(i);
238 n++;
239 break;
240
241 case 0x03:
C51 COMPILER V7.09 CMDR6C 09/11/2007 09:30:23 PAGE 5
242 TAGDONE =1; //received ES2
243 pcdata[Bytecnt] = m;
244 pcdata[0] = Bytecnt;
245 pcdata[1] = bitcnt;
246 if(chkCRC(pcdata+3,Bytecnt-3))
247 {
248 temp = num_card*10 + 25;
249 pcdata[temp] = 0x03; temp++; //ISO兼容卡
250 k = temp+9;
251 l = 4;
252 for(;temp<k;temp++)
253 {
254 pcdata[temp] = pcdata[l];
255 l++;
256 if(temp>125) { break;}
257 }
258 num_card ++;
259 userCardOk = 1;
260 }
261 break;
262
263 case 0x04: //timeout
264 break;
265
266 default:
267 if (bitcnt==8) //start new byte
268 {
269 if(Bytecnt <25)
270 {
271 pcdata[Bytecnt] = m;
272 m=0;
273 bitcnt =0;
274 Bytecnt++;
275 }
276 }
277 bitcnt++;
278 m = m*2 + bitval;
279 }
280 if(b_col)
281 {
282 b_col=0;
283 for(k=0;k<(15-mask_len/4);k++)
284 {
285 for(crc_val=0;crc_val<150;crc_val++); //1.2ms
286 }
287 break;
288 }
289 }
290 for(k=0;k<25;k++) {pcdata[k] = 0;}
291
292 for(k=0;k<0xff;k++);
293 for(k=0;k<0xff;k++);
294 }
295 // DOUT = 1;
296 _setTimer(2);
297 while((DOUT)&&(!TIMERINT));
298 _trans2();
299 // while((DOUT)); _trans2();
300 _clrTimer();
301 }
302
303 if(n==0)
C51 COMPILER V7.09 CMDR6C 09/11/2007 09:30:23 PAGE 6
304 {
305 if(nb_col==0) {return;}
306 else
307 {
308 temp = mask_len/4;
309 temp --;
310 if(temp%2) { mask[temp/2] &= 0x0f; }
311 else { mask[temp/2] &= 0xf0; }
312 mask_len -= 4;
313
314 lev_col[nb_l-1] --;
315 if(lev_col[nb_l-1] ==0)
316 {
317 nb_l --;
318 lev_col[nb_l-1] --;
319 // mask >>= 4;
320 temp = mask_len/4;
321 temp --;
322 if(temp%2) { mask[temp/2] &= 0x0f; }
323 else { mask[temp/2] &= 0xf0; }
324 mask_len -= 4;
325 }
326 }
327 }
328 else
329 {
330 lev_col[nb_l] = n; nb_l ++;
331 }
332 return;
333 }
334
335 void inventory(void)
336 {
337 init_inventory();
338 do
339 {
340 poll_loop();
341 }while(nb_col);
342 }
343 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 116 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -