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

📄 main.lis

📁 基于D12
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0034                   .dbline 76
 0034           ;   D12_SetMode(D12_NOLAZYCLOCK|D12_CLOCKRUNNING,D12_SETTOONE|D12_CLOCK_8M);
 0034 25E4              ldi R18,69
 0036 06E0              ldi R16,6
 0038 0E940000          xcall _D12_SetMode
 003C                   .dbline -2
 003C           L3:
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbend
 003E                   .dbfunc e connect_USB _connect_USB fV
                        .even
 003E           _connect_USB::
 003E                   .dbline -1
 003E                   .dbline 79
 003E           ; }
 003E           ; void connect_USB(void)
 003E           ; {
 003E                   .dbline 80
 003E           ;   DISABLE;
 003E F894              cli
 0040                   .dbline 81
 0040           ;   bEPPflags.value=0;
 0040 2224              clr R2
 0042 3324              clr R3
 0044 30920100          sts _bEPPflags+1,R3
 0048 20920000          sts _bEPPflags,R2
 004C                   .dbline 82
 004C           ;   ENABLE;
 004C 7894              sei
 004E                   .dbline 83
 004E           ;   D12_SetEndpointStatus(4,0);
 004E 2227              clr R18
 0050 04E0              ldi R16,4
 0052 0E940000          xcall _D12_SetEndpointStatus
 0056                   .dbline 84
 0056           ;   D12_SetEndpointStatus(5,0);
 0056 2227              clr R18
 0058 05E0              ldi R16,5
 005A 0E940000          xcall _D12_SetEndpointStatus
 005E                   .dbline 85
 005E           ;   D12_SetDMA(0);
 005E 0027              clr R16
 0060 0E940000          xcall _D12_SetDMA
 0064                   .dbline 86
 0064           ;   D12_SetMode(D12_NOLAZYCLOCK|D12_CLOCKRUNNING|D12_SOFTCONNECT,D12_SETTOONE|D12_CLOCK_8M);
 0064 25E4              ldi R18,69
 0066 06E1              ldi R16,22
 0068 0E940000          xcall _D12_SetMode
 006C                   .dbline -2
 006C           L4:
 006C                   .dbline 0 ; func end
 006C 0895              ret
 006E                   .dbend
 006E                   .dbfunc e reconnect_USB _reconnect_USB fV
 006E           ;              i -> R20,R21
                        .even
 006E           _reconnect_USB::
 006E 0E940000          xcall push_gset1
 0072                   .dbline -1
 0072                   .dbline 89
 0072           ; }
 0072           ; void reconnect_USB(void)
 0072           ; {
 0072                   .dbline 91
 0072           ;   unsigned int i;
 0072           ;   disconnect_USB();
 0072 E0DF              xcall _disconnect_USB
 0074                   .dbline 92
 0074           ;   ENABLE;
 0074 7894              sei
 0076                   .dbline 93
 0076 4427              clr R20
 0078 5527              clr R21
 007A 02C0              xjmp L9
 007C           L6:
 007C                   .dbline 93
 007C           L7:
 007C                   .dbline 93
 007C 4F5F              subi R20,255  ; offset = 1
 007E 5F4F              sbci R21,255
 0080           L9:
 0080                   .dbline 93
 0080           ;   for(i=0;i<50000;i++);
 0080 4035              cpi R20,80
 0082 E3EC              ldi R30,195
 0084 5E07              cpc R21,R30
 0086 D0F3              brlo L6
 0088                   .dbline 94
 0088           ;   DISABLE;
 0088 F894              cli
 008A                   .dbline 95
 008A           ;   connect_USB(); 
 008A D9DF              xcall _connect_USB
 008C                   .dbline -2
 008C           L5:
 008C 0E940000          xcall pop_gset1
 0090                   .dbline 0 ; func end
 0090 0895              ret
 0092                   .dbsym r i 20 i
 0092                   .dbend
 0092                   .dbfunc e stall_ep0 _stall_ep0 fV
                        .even
 0092           _stall_ep0::
 0092                   .dbline -1
 0092                   .dbline 98
 0092           ; }
 0092           ; void stall_ep0()
 0092           ; {
 0092                   .dbline 99
 0092           ;   D12_SetEndpointStatus(0,1);
 0092 21E0              ldi R18,1
 0094 0027              clr R16
 0096 0E940000          xcall _D12_SetEndpointStatus
 009A                   .dbline 100
 009A           ;   D12_SetEndpointStatus(1,1);
 009A 21E0              ldi R18,1
 009C 01E0              ldi R16,1
 009E 0E940000          xcall _D12_SetEndpointStatus
 00A2                   .dbline -2
 00A2           L10:
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbend
 00A4                   .dbfunc e init_unconfig _init_unconfig fV
                        .even
 00A4           _init_unconfig::
 00A4                   .dbline -1
 00A4                   .dbline 103
 00A4           ; }
 00A4           ; void init_unconfig(void)
 00A4           ; {
 00A4                   .dbline 104
 00A4           ;   D12_SetEndpointEnable(0);
 00A4 0027              clr R16
 00A6 0E940000          xcall _D12_SetEndpointEnable
 00AA                   .dbline -2
 00AA           L11:
 00AA                   .dbline 0 ; func end
 00AA 0895              ret
 00AC                   .dbend
 00AC                   .dbfunc e init_config _init_config fV
                        .even
 00AC           _init_config::
 00AC                   .dbline -1
 00AC                   .dbline 107
 00AC           ; }
 00AC           ; void init_config(void)
 00AC           ; {
 00AC                   .dbline 108
 00AC           ;   D12_SetEndpointEnable(1);
 00AC 01E0              ldi R16,1
 00AE 0E940000          xcall _D12_SetEndpointEnable
 00B2                   .dbline -2
 00B2           L12:
 00B2                   .dbline 0 ; func end
 00B2 0895              ret
 00B4                   .dbend
 00B4                   .dbfunc e single_transmit _single_transmit fV
 00B4           ;            len -> R20
 00B4           ;            buf -> R22,R23
                        .even
 00B4           _single_transmit::
 00B4 0E940000          xcall push_gset2
 00B8 422F              mov R20,R18
 00BA B801              movw R22,R16
 00BC 2297              sbiw R28,2
 00BE                   .dbline -1
 00BE                   .dbline 111
 00BE                   .dbline 112
 00BE 80E1              ldi R24,16
 00C0 8417              cp R24,R20
 00C2 30F0              brlo L14
 00C4                   .dbline 113
 00C4                   .dbline 114
 00C4 7983              std y+1,R23
 00C6 6883              std y+0,R22
 00C8 242F              mov R18,R20
 00CA 01E0              ldi R16,1
 00CC 0E940000          xcall _D12_WriteEndpoint
 00D0                   .dbline 115
 00D0           L14:
 00D0                   .dbline -2
 00D0           L13:
 00D0 2296              adiw R28,2
 00D2 0E940000          xcall pop_gset2
 00D6                   .dbline 0 ; func end
 00D6 0895              ret
 00D8                   .dbsym r len 20 c
 00D8                   .dbsym r buf 22 pc
 00D8                   .dbend
 00D8                   .dbfunc e code_transmit _code_transmit fV
 00D8           ;            len -> R22,R23
 00D8           ;       pRomData -> R20,R21
                        .even
 00D8           _code_transmit::
 00D8 0E940000          xcall push_gset2
 00DC B901              movw R22,R18
 00DE A801              movw R20,R16
 00E0 2297              sbiw R28,2
 00E2                   .dbline -1
 00E2                   .dbline 118
 00E2           ; }
 00E2           ; void single_transmit(unsigned char * buf,unsigned char len)
 00E2           ; {
 00E2           ;   if(len<=EP0_PACKET_SIZE)
 00E2           ;   {
 00E2           ;      D12_WriteEndpoint(1,len,buf);
 00E2           ;   }
 00E2           ; }
 00E2           ; void code_transmit(const unsigned char * pRomData,unsigned short len)
 00E2           ; {
 00E2                   .dbline 119
 00E2           ;   ControlData.wCount=0;
 00E2 2224              clr R2
 00E4 3324              clr R3
 00E6 30920B00          sts _ControlData+10+1,R3
 00EA 20920A00          sts _ControlData+10,R2
 00EE                   .dbline 120
 00EE           ;   if(ControlData.wLength>len)
 00EE 20900800          lds R2,_ControlData+8
 00F2 30900900          lds R3,_ControlData+8+1
 00F6 6215              cp R22,R2
 00F8 7305              cpc R23,R3
 00FA 20F4              brsh L18
 00FC                   .dbline 121
 00FC           ;      ControlData.wLength=len;
 00FC 70930900          sts _ControlData+8+1,R23
 0100 60930800          sts _ControlData+8,R22
 0104           L18:
 0104                   .dbline 122
 0104           ;   ControlData.pCData=pRomData;  
 0104 50930F00          sts _ControlData+14+1,R21
 0108 40930E00          sts _ControlData+14,R20
 010C                   .dbline 123
 010C           ;   if(ControlData.wLength>=EP0_PACKET_SIZE)
 010C 80910800          lds R24,_ControlData+8
 0110 90910900          lds R25,_ControlData+8+1
 0114 8031              cpi R24,16
 0116 E0E0              ldi R30,0
 0118 9E07              cpc R25,R30
 011A 20F1              brlo L23
 011C                   .dbline 124
 011C           ;   {
 011C                   .dbline 125
 011C           ;      bEPPflags.bits.rom_state=1;
 011C 80910000          lds R24,_bEPPflags
 0120 90910100          lds R25,_bEPPflags+1
 0124 9860              ori R25,8
 0126 90930100          sts _bEPPflags+1,R25
 012A 80930000          sts _bEPPflags,R24
 012E                   .dbline 126
 012E           ;      D12_CWriteEndpoint(1,EP0_PACKET_SIZE,ControlData.pCData);
 012E 1A01              movw R2,R20
 0130 3982              std y+1,R3
 0132 2882              std y+0,R2
 0134 20E1              ldi R18,16
 0136 30E0              ldi R19,0
 0138 01E0              ldi R16,1
 013A 10E0              ldi R17,0
 013C 0E940000          xcall _D12_CWriteEndpoint
 0140                   .dbline 127
 0140           ;      ControlData.wCount+=EP0_PACKET_SIZE;
 0140 80910A00          lds R24,_ControlData+10
 0144 90910B00          lds R25,_ControlData+10+1
 0148 4096              adiw R24,16
 014A 90930B00          sts _ControlData+10+1,R25
 014E 80930A00          sts _ControlData+10,R24
 0152                   .dbline 128
 0152           ;      DISABLE;
 0152 F894              cli
 0154                   .dbline 129
 0154           ;      bEPPflags.bits.control_state=USB_TRANSMIT;
 0154 80910000          lds R24,_bEPPflags
 0158 8F79              andi R24,159
 015A 8062              ori R24,32
 015C 80930000          sts _bEPPflags,R24
 0160                   .dbline 130
 0160           ;      ENABLE;
 0160 7894              sei
 0162                   .dbline 131
 0162           ;   }
 0162 1FC0              xjmp L24
 0164           L23:
 0164                   .dbline 133
 0164                   .dbline 134
 0164 5983              std y+1,R21
 0166 4883              std y+0,R20
 0168 20910800          lds R18,_ControlData+8

⌨️ 快捷键说明

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