📄 iic_avr.lst
字号:
280 014a 9105 cpc r25,__zero_reg__
281 014c 09F4 brne .+2
282 014e A6C0 rjmp .L8
283 0150 2A81 ldd r18,Y+2
284 0152 3B81 ldd r19,Y+3
285 0154 2031 cpi r18,16
286 0156 3105 cpc r19,__zero_reg__
287 0158 09F4 brne .+2
288 015a A0C0 rjmp .L8
289 015c FFC1 rjmp .L46
290 .L49:
291 015e 8A81 ldd r24,Y+2
292 0160 9B81 ldd r25,Y+3
293 0162 8032 cpi r24,32
294 0164 9105 cpc r25,__zero_reg__
295 0166 09F4 brne .+2
296 0168 D6C0 rjmp .L13
297 016a 2A81 ldd r18,Y+2
298 016c 3B81 ldd r19,Y+3
299 016e 2832 cpi r18,40
300 0170 3105 cpc r19,__zero_reg__
301 0172 09F4 brne .+2
302 0174 A2C0 rjmp .L10
303 0176 F2C1 rjmp .L46
304 .L48:
305 0178 8A81 ldd r24,Y+2
306 017a 9B81 ldd r25,Y+3
307 017c 8834 cpi r24,72
308 017e 9105 cpc r25,__zero_reg__
309 0180 09F4 brne .+2
310 0182 8DC1 rjmp .L34
311 0184 2A81 ldd r18,Y+2
312 0186 3B81 ldd r19,Y+3
313 0188 2934 cpi r18,73
314 018a 3105 cpc r19,__zero_reg__
315 018c 6CF4 brge .L50
316 018e 8A81 ldd r24,Y+2
317 0190 9B81 ldd r25,Y+3
318 0192 8833 cpi r24,56
319 0194 9105 cpc r25,__zero_reg__
320 0196 09F4 brne .+2
321 0198 ECC0 rjmp .L15
322 019a 2A81 ldd r18,Y+2
323 019c 3B81 ldd r19,Y+3
324 019e 2034 cpi r18,64
325 01a0 3105 cpc r19,__zero_reg__
326 01a2 09F4 brne .+2
327 01a4 43C1 rjmp .L30
328 01a6 DAC1 rjmp .L46
329 .L50:
330 01a8 8A81 ldd r24,Y+2
331 01aa 9B81 ldd r25,Y+3
332 01ac 8835 cpi r24,88
333 01ae 9105 cpc r25,__zero_reg__
334 01b0 09F4 brne .+2
335 01b2 87C1 rjmp .L35
336 01b4 2A81 ldd r18,Y+2
337 01b6 3B81 ldd r19,Y+3
338 01b8 2935 cpi r18,89
339 01ba 3105 cpc r19,__zero_reg__
340 01bc 3CF4 brge .L51
341 01be 8A81 ldd r24,Y+2
342 01c0 9B81 ldd r25,Y+3
343 01c2 8035 cpi r24,80
344 01c4 9105 cpc r25,__zero_reg__
345 01c6 09F4 brne .+2
346 01c8 37C1 rjmp .L31
347 01ca C8C1 rjmp .L46
348 .L51:
349 01cc 2A81 ldd r18,Y+2
350 01ce 3B81 ldd r19,Y+3
351 01d0 2036 cpi r18,96
352 01d2 3105 cpc r19,__zero_reg__
353 01d4 09F4 brne .+2
354 01d6 EEC0 rjmp .L21
355 01d8 C1C1 rjmp .L46
356 .L47:
357 01da 8A81 ldd r24,Y+2
358 01dc 9B81 ldd r25,Y+3
359 01de 8839 cpi r24,152
360 01e0 9105 cpc r25,__zero_reg__
361 01e2 09F4 brne .+2
362 01e4 0FC1 rjmp .L27
363 01e6 2A81 ldd r18,Y+2
364 01e8 3B81 ldd r19,Y+3
365 01ea 2939 cpi r18,153
366 01ec 3105 cpc r19,__zero_reg__
367 01ee 2CF5 brge .L52
368 01f0 8A81 ldd r24,Y+2
369 01f2 9B81 ldd r25,Y+3
370 01f4 8038 cpi r24,128
371 01f6 9105 cpc r25,__zero_reg__
372 01f8 09F4 brne .+2
373 01fa E5C0 rjmp .L23
374 01fc 2A81 ldd r18,Y+2
375 01fe 3B81 ldd r19,Y+3
376 0200 2138 cpi r18,129
377 0202 3105 cpc r19,__zero_reg__
378 0204 6CF4 brge .L53
379 0206 8A81 ldd r24,Y+2
380 0208 9B81 ldd r25,Y+3
381 020a 8037 cpi r24,112
382 020c 9105 cpc r25,__zero_reg__
383 020e 09F4 brne .+2
384 0210 D1C0 rjmp .L21
385 0212 2A81 ldd r18,Y+2
386 0214 3B81 ldd r19,Y+3
387 0216 2837 cpi r18,120
388 0218 3105 cpc r19,__zero_reg__
389 021a 09F4 brne .+2
390 021c CBC0 rjmp .L21
391 021e 9EC1 rjmp .L46
392 .L53:
393 0220 8A81 ldd r24,Y+2
394 0222 9B81 ldd r25,Y+3
395 0224 8838 cpi r24,136
396 0226 9105 cpc r25,__zero_reg__
397 0228 09F4 brne .+2
398 022a ECC0 rjmp .L27
399 022c 2A81 ldd r18,Y+2
400 022e 3B81 ldd r19,Y+3
401 0230 2039 cpi r18,144
402 0232 3105 cpc r19,__zero_reg__
403 0234 09F4 brne .+2
404 0236 C7C0 rjmp .L23
405 0238 91C1 rjmp .L46
406 .L52:
407 023a 8A81 ldd r24,Y+2
408 023c 9B81 ldd r25,Y+3
409 023e 803B cpi r24,176
410 0240 9105 cpc r25,__zero_reg__
411 0242 09F4 brne .+2
412 0244 7BC1 rjmp .L43
413 0246 2A81 ldd r18,Y+2
414 0248 3B81 ldd r19,Y+3
415 024a 213B cpi r18,177
416 024c 3105 cpc r19,__zero_reg__
417 024e 6CF4 brge .L54
418 0250 8A81 ldd r24,Y+2
419 0252 9B81 ldd r25,Y+3
420 0254 803A cpi r24,160
421 0256 9105 cpc r25,__zero_reg__
422 0258 09F4 brne .+2
423 025a D8C0 rjmp .L28
424 025c 2A81 ldd r18,Y+2
425 025e 3B81 ldd r19,Y+3
426 0260 283A cpi r18,168
427 0262 3105 cpc r19,__zero_reg__
428 0264 09F4 brne .+2
429 0266 4BC1 rjmp .L38
430 0268 79C1 rjmp .L46
431 .L54:
432 026a 8A81 ldd r24,Y+2
433 026c 9B81 ldd r25,Y+3
434 026e 803C cpi r24,192
435 0270 9105 cpc r25,__zero_reg__
436 0272 09F4 brne .+2
437 0274 63C1 rjmp .L43
438 0276 2A81 ldd r18,Y+2
439 0278 3B81 ldd r19,Y+3
440 027a 213C cpi r18,193
441 027c 3105 cpc r19,__zero_reg__
442 027e 3CF4 brge .L55
443 0280 8A81 ldd r24,Y+2
444 0282 9B81 ldd r25,Y+3
445 0284 883B cpi r24,184
446 0286 9105 cpc r25,__zero_reg__
447 0288 09F4 brne .+2
448 028a 3EC1 rjmp .L39
449 028c 67C1 rjmp .L46
450 .L55:
451 028e 2A81 ldd r18,Y+2
452 0290 3B81 ldd r19,Y+3
453 0292 283C cpi r18,200
454 0294 3105 cpc r19,__zero_reg__
455 0296 09F4 brne .+2
456 0298 51C1 rjmp .L43
457 029a 60C1 rjmp .L46
458 .L8:
96:IIC_AVR.c **** {
97:IIC_AVR.c **** case TW_START: // A START has transmit to IIC bus
98:IIC_AVR.c **** case TW_REP_START: //A REPEAT START has transmit to IIC bus
99:IIC_AVR.c **** ucIICMode=IIC_MODE_MASTER_TRANSMIT;
460 .LM23:
461 029c 82E0 ldi r24,lo8(2)
462 029e 8093 0000 sts ucIICMode,r24
100:IIC_AVR.c **** IIC_SLA; //Send SLA+R/W to IIC bus
464 .LM24:
465 02a2 8091 0000 lds r24,IIC_Buffer_Out+18
466 02a6 880F lsl r24
467 02a8 8093 2300 sts 35,r24
468 02ac 8FEF ldi r24,lo8(-1)
469 02ae 8093 0000 sts ucIICTimeoutCount,r24
101:IIC_AVR.c **** // cbi(TWCR,TWSTA); //Clear TWSTA
102:IIC_AVR.c **** TWCR=(_BV(TWEN)|_BV(TWEA)|_BV(TWIE)|_BV(TWINT));
471 .LM25:
472 02b2 85EC ldi r24,lo8(-59)
473 02b4 8093 5600 sts 86,r24
103:IIC_AVR.c **** break;
475 .LM26:
476 02b8 54C1 rjmp .L5
477 .L10:
104:IIC_AVR.c **** case TW_MT_SLA_ACK:
105:IIC_AVR.c **** case TW_MT_DATA_ACK: //Send data to Slave IIC device
106:IIC_AVR.c **** if(IIC_Buffer_Out.ucWriteP!=IIC_Buffer_Out.ucReadP)
479 .LM27:
480 02ba 9091 0000 lds r25,IIC_Buffer_Out+16
481 02be 8091 0000 lds r24,IIC_Buffer_Out+17
482 02c2 9817 cp r25,r24
483 02c4 A1F0 breq .L11
107:IIC_AVR.c **** { // Data transmit not finish
108:IIC_AVR.c **** IIC_BUFFER_TO_BUS;
485 .LM28:
486 02c6 A0E0 ldi r26,lo8(IIC_Buffer_Out+17)
487 02c8 B0E0 ldi r27,hi8(IIC_Buffer_Out+17)
488 02ca 2C91 ld r18,X
489 02cc 822F mov r24,r18
490 02ce 9927 clr r25
491 02d0 FC01 movw r30,r24
492 02d2 E050 subi r30,lo8(-(IIC_Buffer_Out))
493 02d4 F040 sbci r31,hi8(-(IIC_Buffer_Out))
494 02d6 2F5F subi r18,lo8(-(1))
495 02d8 2C93 st X,r18
496 02da 8081 ld r24,Z
497 02dc 8093 2300 sts 35,r24
498 02e0 8FEF ldi r24,lo8(-1)
499 02e2 8093 0000 sts ucIICTimeoutCount,r24
109:IIC_AVR.c **** TWCR=(_BV(TWEN)|_BV(TWEA)|_BV(TWIE)|_BV(TWINT));
501 .LM29:
502 02e6 85EC ldi r24,lo8(-59)
503 02e8 8093 5600 sts 86,r24
110:IIC_AVR.c **** break;
505 .LM30:
506 02ec 3AC1 rjmp .L5
507 .L11:
111:IIC_AVR.c **** }
112:IIC_AVR.c **** else
113:IIC_AVR.c **** {
114:IIC_AVR.c **** IIC_STOP; //Data transmit finish,Release IIC bus
509 .LM31:
510 02ee 8091 5600 lds r24,86
511 02f2 8569 ori r24,lo8(-107)
512 02f4 8093 5600 sts 86,r24
513 02f8 1092 0000 sts ucIICTimeoutCount,__zero_reg__
115:IIC_AVR.c **** //Enable user program write a new command to IIC transmit buffer
116:IIC_AVR.c **** IIC_Buffer_Out.ucIICBufferStatus.bEnAccess=1;
515 .LM32:
516 02fc 8091 0000 lds r24,IIC_Buffer_Out+19
517 0300 8160 ori r24,lo8(1)
518 0302 8093 0000 sts IIC_Buffer_Out+19,r24
117:IIC_AVR.c **** IIC_Buffer_Out.ucReadP=0;
520 .LM33:
521 0306 1092 0000 sts IIC_Buffer_Out+17,__zero_reg__
118:IIC_AVR.c **** IIC_Buffer_Out.ucWriteP=0;
523 .LM34:
524 030a 1092 0000 sts IIC_Buffer_Out+16,__zero_reg__
119:IIC_AVR.c **** ucIICMode=IIC_MODE_SLAVE_RECEIVE;
526 .LM35:
527 030e 81E0 ldi r24,lo8(1)
528 0310 8093 0000 sts ucIICMode,r24
120:IIC_AVR.c **** break;
530 .LM36:
531 0314 26C1 rjmp .L5
532 .L13:
121:IIC_AVR.c **** }
122:IIC_AVR.c **** case TW_MT_SLA_NACK: //Slave IIC device did not return a NACK during
123:IIC_AVR.c **** //address phase
124:IIC_AVR.c **** IIC_STOP; //Slave address error,Release IIC bus
534 .LM37:
535 0316 8091 5600 lds r24,86
536 031a 8569 ori r24,lo8(-107)
537 031c 8093 5600 sts 86,r24
538 0320 1092 0000 sts ucIICTimeoutCount,__zero_reg__
125:IIC_AVR.c **** //Enable user program write a new command to IIC transmit buffer
126:IIC_AVR.c **** ucIICMode=IIC_MODE_SLAVE_RECEIVE;
540 .LM38:
541 0324 81E0 ldi r24,lo8(1)
542 0326 8093 0000 sts ucIICMode,r24
127:IIC_AVR.c **** ucIICError=IIC_ERROR_NOT_ACK_SLA;
544 .LM39:
545 032a 81E8 ldi r24,lo8(-127)
546 032c 8093 0000 sts ucIICError,r24
128:IIC_AVR.c **** IIC_Buffer_Out.ucIICBufferStatus.bEnAccess=1;
548 .LM40:
549 0330 8091 0000 lds r24,IIC_Buffer_Out+19
550 0334 8160 ori r24,lo8(1)
551 0336 8093 0000 sts IIC_Buffer_Out+19,r24
129:IIC_AVR.c **** IIC_Buffer_Out.ucReadP=0;
553 .LM41:
554 033a 1092 0000 sts IIC_Buffer_Out+17,__zero_reg__
130:IIC_AVR.c **** IIC_Buffer_Out.ucWriteP=0;
556 .LM42:
557 033e 1092 0000 sts IIC_Buffer_Out+16,__zero_reg__
131:IIC_AVR.c **** break;
559 .LM43:
560 0342 0FC1 rjmp .L5
561 .L14:
132:IIC_AVR.c **** case TW_MT_DATA_NACK: //Slave IIC device did not return a NACK during
133:IIC_AVR.c **** //data transfer phase
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -