⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isr.lis

📁 采用Atmeag162单片机来制作的U盘程序源码
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0312 10C0              xjmp L64
 0314           L63:
 0314                   .dbline 150
 0314           ;   else if(i==0)
 0314 4030              cpi R20,0
 0316 4507              cpc R20,R21
 0318 69F4              brne L72
 031A           X3:
 031A                   .dbline 151
 031A           ;   {
 031A                   .dbline 152
 031A           ;      D12_WriteEndpoint(1,0,0);
 031A 2224              clr R2
 031C 3324              clr R3
 031E 3982              std y+1,R3
 0320 2882              std y+0,R2
 0322 2227              clr R18
 0324 01E0              ldi R16,1
 0326 0E940000          xcall _D12_WriteEndpoint
 032A                   .dbline 153
 032A           ;      bEPPflags.bits.control_state=USB_IDLE;
 032A 80910600          lds R24,_bEPPflags
 032E 8F79              andi R24,159
 0330 80930600          sts _bEPPflags,R24
 0334                   .dbline 154
 0334           ;   }
 0334           L72:
 0334           L64:
 0334           L55:
 0334                   .dbline -2
 0334                   .dbline 155
 0334           ; }
 0334           L49:
 0334 2296              adiw R28,2
 0336 0E940000          xcall pop_gset1
 033A                   .dbline 0 ; func end
 033A 0895              ret
 033C                   .dbsym r i 20 S
 033C                   .dbend
 033C                   .dbfunc e ep1_txdone _ep1_txdone fV
                        .even
 033C           _ep1_txdone::
 033C                   .dbline -1
 033C                   .dbline 157
 033C           ; void ep1_txdone(void)
 033C           ; {
 033C                   .dbline 158
 033C           ;    D12_ReadLastTransactionStatus(3);
 033C 03E0              ldi R16,3
 033E                   .dbline -2
 033E                   .dbline 159
 033E           ; }
 033E           L74:
 033E                   .dbline 0 ; func end
 033E 0C940000          xjmp _D12_ReadLastTransactionStatus
 0342                   .dbend
 0342                   .dbfunc e ep1_rxdone _ep1_rxdone fV
                        .even
 0342           _ep1_rxdone::
 0342                   .dbline -1
 0342                   .dbline 161
 0342           ; void ep1_rxdone(void)
 0342           ; {
 0342                   .dbline 162
 0342           ;    D12_ReadLastTransactionStatus(2); 
 0342 02E0              ldi R16,2
 0344                   .dbline -2
 0344                   .dbline 163
 0344           ; }
 0344           L75:
 0344                   .dbline 0 ; func end
 0344 0C940000          xjmp _D12_ReadLastTransactionStatus
 0348                   .dbend
 0348                   .dbfunc e main_txdone _main_txdone fV
 0348           ;              i -> R20,R21
                        .even
 0348           _main_txdone::
 0348 0E940000          xcall push_gset1
 034C 2297              sbiw R28,2
 034E                   .dbline -1
 034E                   .dbline 165
 034E           ; void main_txdone(void)
 034E           ; {
 034E                   .dbline 167
 034E           ;   unsigned int i;
 034E           ;   D12_ReadLastTransactionStatus(5);
 034E 05E0              ldi R16,5
 0350 0E940000          xcall _D12_ReadLastTransactionStatus
 0354                   .dbline 168
 0354           ;   if(bEPPflags.bits.bulk_state==BULK_REQEST_TRANS)
 0354 80910800          lds R24,_bEPPflags+2
 0358 8770              andi R24,7
 035A 8330              cpi R24,3
 035C 09F0              breq X5
 035E 53C0              xjmp L77
 0360           X5:
 0360                   .dbline 169
 0360           ;   {
 0360                   .dbline 170
 0360           ;      i=ControlData.wLength-ControlData.wCount;
 0360 20900A00          lds R2,_ControlData+10
 0364 30900B00          lds R3,_ControlData+10+1
 0368 40910800          lds R20,_ControlData+8
 036C 50910900          lds R21,_ControlData+8+1
 0370 4219              sub R20,R2
 0372 5309              sbc R21,R3
 0374                   .dbline 171
 0374           ;      if(i>=EP2_PACKET_SIZE)
 0374 4034              cpi R20,64
 0376 E0E0              ldi R30,0
 0378 5E07              cpc R21,R30
 037A 18F1              brlo L82
 037C                   .dbline 172
 037C           ;      {
 037C                   .dbline 173
 037C           ;         D12_CWriteEndpoint(5,EP2_PACKET_SIZE,ControlData.pCData+ControlData.wCount);
 037C 20900E00          lds R2,_ControlData+14
 0380 30900F00          lds R3,_ControlData+14+1
 0384 40900A00          lds R4,_ControlData+10
 0388 50900B00          lds R5,_ControlData+10+1
 038C 420C              add R4,R2
 038E 531C              adc R5,R3
 0390 5982              std y+1,R5
 0392 4882              std y+0,R4
 0394 20E4              ldi R18,64
 0396 30E0              ldi R19,0
 0398 05E0              ldi R16,5
 039A 10E0              ldi R17,0
 039C 0E940000          xcall _D12_CWriteEndpoint
 03A0                   .dbline 174
 03A0           ;         ControlData.wCount+=EP2_PACKET_SIZE;
 03A0 80910A00          lds R24,_ControlData+10
 03A4 90910B00          lds R25,_ControlData+10+1
 03A8 805C              subi R24,192  ; offset = 64
 03AA 9F4F              sbci R25,255
 03AC 90930B00          sts _ControlData+10+1,R25
 03B0 80930A00          sts _ControlData+10,R24
 03B4                   .dbline 175
 03B4           ;         bEPPflags.bits.bulk_state=BULK_REQEST_TRANS;
 03B4 80910800          lds R24,_bEPPflags+2
 03B8 887F              andi R24,248
 03BA 8360              ori R24,3
 03BC 80930800          sts _bEPPflags+2,R24
 03C0                   .dbline 176
 03C0           ;     } 
 03C0 9AC0              xjmp L78
 03C2           L82:
 03C2                   .dbline 178
 03C2           ;       else
 03C2           ;     {
 03C2                   .dbline 179
 03C2           ;         D12_CWriteEndpoint(5,i,ControlData.pCData+ControlData.wCount);
 03C2 20900E00          lds R2,_ControlData+14
 03C6 30900F00          lds R3,_ControlData+14+1
 03CA 40900A00          lds R4,_ControlData+10
 03CE 50900B00          lds R5,_ControlData+10+1
 03D2 420C              add R4,R2
 03D4 531C              adc R5,R3
 03D6 5982              std y+1,R5
 03D8 4882              std y+0,R4
 03DA 9A01              movw R18,R20
 03DC 05E0              ldi R16,5
 03DE 10E0              ldi R17,0
 03E0 0E940000          xcall _D12_CWriteEndpoint
 03E4                   .dbline 180
 03E4           ;           ControlData.wCount+=i;
 03E4 20900A00          lds R2,_ControlData+10
 03E8 30900B00          lds R3,_ControlData+10+1
 03EC 240E              add R2,R20
 03EE 351E              adc R3,R21
 03F0 30920B00          sts _ControlData+10+1,R3
 03F4 20920A00          sts _ControlData+10,R2
 03F8                   .dbline 181
 03F8           ;         bEPPflags.bits.bulk_state=BULK_DATA_END;
 03F8 80910800          lds R24,_bEPPflags+2
 03FC 887F              andi R24,248
 03FE 8260              ori R24,2
 0400 80930800          sts _bEPPflags+2,R24
 0404                   .dbline 182
 0404           ;     } 
 0404                   .dbline 183
 0404           ;   }
 0404 78C0              xjmp L78
 0406           L77:
 0406                   .dbline 184
 0406           ;   else if(bEPPflags.bits.bulk_state==BULK_DATA_END)
 0406 80910800          lds R24,_bEPPflags+2
 040A 8770              andi R24,7
 040C 8230              cpi R24,2
 040E 19F4              brne L92
 0410                   .dbline 185
 0410           ;   {
 0410                   .dbline 186
 0410           ;     Bulk_CSWHandler();
 0410 0E940000          xcall _Bulk_CSWHandler
 0414                   .dbline 187
 0414           ;   } 
 0414 70C0              xjmp L93
 0416           L92:
 0416                   .dbline 188
 0416           ;   else if(bEPPflags.bits.bulk_state==BULK_DATA_TRANS)
 0416 80910800          lds R24,_bEPPflags+2
 041A 8770              andi R24,7
 041C 8130              cpi R24,1
 041E 09F0              breq X6
 0420 6AC0              xjmp L95
 0422           X6:
 0422                   .dbline 189
 0422           ;   {
 0422                   .dbline 190
 0422           ;       if(Bulk_Control_r.BufCount<448)//512-64=448
 0422 80910600          lds R24,_Bulk_Control_r+6
 0426 90910700          lds R25,_Bulk_Control_r+6+1
 042A 803C              cpi R24,192
 042C E1E0              ldi R30,1
 042E 9E07              cpc R25,R30
 0430 A8F4              brsh L98
 0432                   .dbline 191
 0432           ;       {           
 0432                   .dbline 192
 0432           ;         Bulk_Control_r.BufCount+=64;
 0432 805C              subi R24,192  ; offset = 64
 0434 9F4F              sbci R25,255
 0436 90930700          sts _Bulk_Control_r+6+1,R25
 043A 80930600          sts _Bulk_Control_r+6,R24
 043E                   .dbline 193
 043E           ;           D12_WriteEndpoint(5,64,PageBuf+Bulk_Control_r.BufCount);
 043E 80E0              ldi R24,<_PageBuf
 0440 90E0              ldi R25,>_PageBuf
 0442 20900600          lds R2,_Bulk_Control_r+6
 0446 30900700          lds R3,_Bulk_Control_r+6+1
 044A 280E              add R2,R24
 044C 391E              adc R3,R25
 044E 3982              std y+1,R3
 0450 2882              std y+0,R2
 0452 20E4              ldi R18,64
 0454 05E0              ldi R16,5
 0456 0E940000          xcall _D12_WriteEndpoint
 045A                   .dbline 194
 045A           ;       }        
 045A 4DC0              xjmp L99
 045C           L98:
 045C                   .dbline 195
 045C           ;       else if(Bulk_Control_r.Transfer_Length>0)
 045C 20900000          lds R2,_Bulk_Control_r
 0460 30900100          lds R3,_Bulk_Control_r+1
 0464 2220              tst R2
 0466 19F4              brne X4
 0468 3320              tst R3
 046A 09F4              brne X7
 046C 42C0              xjmp L103
 046E           X7:
 046E           X4:
 046E                   .dbline 196
 046E           ;       {
 046E                   .dbline 197
 046E           ;            if(Bulk_Control_r.CurrentPage==32)
 046E 80910400          lds R24,_Bulk_Control_r+4
 0472 8032              cpi R24,32
 0474 61F4              brne L105
 0476                   .dbline 198
 0476           ;            {
 0476                   .dbline 199
 0476           ;              Bulk_Control_r.CurrentBlock++;
 0476 80910200          lds R24,_Bulk_Control_r+2
 047A 90910300          lds R25,_Bulk_Control_r+2+1
 047E 0196              adiw R24,1
 0480 90930300          sts _Bulk_Control_r+2+1,R25
 0484 80930200          sts _Bulk_Control_r+2,R24
 0488                   .dbline 200
 0488           ;              Bulk_Control_r.CurrentPage=0;
 0488 2224              clr R2
 048A 20920400          sts _Bulk_Control_r+4,R2
 048E                   .dbline 201
 048E           ;            }
 048E           L105:
 048E                   .dbline 202
 048E           ;            ReadPage(Bulk_Control_r.CurrentBlock,Bulk_Control_r.CurrentPage,PageBuf);
 048E 80E0              ldi R24,<_PageBuf
 0490 90E0              ldi R25,>_PageBuf
 0492 9983              std y+1,R25
 0494 8883              std y+0,R24
 0496 20910400          lds R18,_Bulk_Control_r+4
 049A 3327              clr R19
 049C 00910200          lds R16,_Bulk_Control_r+2
 04A0 10910300          lds R17,_Bulk_Control_r+2+1
 04A4 0E940000          xcall _ReadPage
 04A8                   .dbline 203
 04A8           ;                Bulk_Control_r.CurrentPage++;
 04A8 80910400          lds R24,_Bulk_Control_r+4
 04AC 8F5F              subi R24,255    ; addi 1
 04AE 80930400          sts _Bulk_Control_r+4,R24
 04B2                   .dbline 204
 04B2           ;            Bulk_Control_r.Transfer_Length--;     
 04B2 80910000          lds R24,_Bulk_Control_r
 04B6 90910100          lds R25,_Bulk_Control_r+1
 04BA 0197              sbiw R24,1
 04BC 90930100          sts _Bulk_Control_r+1,R25
 04C0 80930000          sts _Bulk_Control_r,R24
 04C4                   .dbline 205
 04C4           ;            Bulk_Control_r.BufCount=0;
 04C4 2224              clr R2
 04C6 3324              clr R3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -