📄 d12-avr.lis
字号:
0114 ; }
0114 0CC0 rjmp L21
0116 L20:
0116 .dbline 92
0116 ; else if(i & 0x80)//D12_INT_SUSPENDCHANGE D12挂起
0116 47FF sbrs R20,7
0118 01C0 rjmp L22
011A .dbline 93
011A ; {
011A .dbline 95
011A ; //if(D12_suspend)
011A ; {
011A .dbline 101
011A ; /** /
011A ; D12_suspend = 0;//处理挂起事务
011A ; D12_COMMAND = 0xf6;//发送恢复命令
011A ; D12_suspend = 1;//复位51输入引脚
011A ; /**/
011A ; }
011A .dbline 102
011A ; }
011A 09C0 rjmp L23
011C L22:
011C .dbline 103
011C ; else if(i & 0x40)//D12_INT_BUSRESET 总线复位
011C 46FF sbrs R20,6
011E 02C0 rjmp L24
0120 .dbline 104
0120 ; {
0120 .dbline 105
0120 ; bus_reset();
0120 0AD0 rcall _bus_reset
0122 .dbline 106
0122 ; }
0122 05C0 rjmp L25
0124 L24:
0124 .dbline 108
0124 ; else
0124 ; {
0124 .dbline 109
0124 ; i=D12_DATA; //D12_INT_EOT DMA操作已结束
0124 4091007F lds R20,32512
0128 .dbline 110
0128 ; if(i & 0x01)
0128 40FF sbrs R20,0
012A 01C0 rjmp L26
012C .dbline 111
012C ; {
012C .dbline 112
012C ; dma_eot();
012C 05D0 rcall _dma_eot
012E .dbline 113
012E ; }
012E L26:
012E .dbline 114
012E ; }
012E L25:
012E L23:
012E L21:
012E L19:
012E L17:
012E L15:
012E L13:
012E L9:
012E .dbline 116
012E ;
012E ; SREG = 0x80;//全局中断使能
012E 80E8 ldi R24,128
0130 8FBF out 0x3f,R24
0132 .dbline -2
0132 .dbline 117
0132 ; }
0132 L7:
0132 00D0 rcall pop_gset2
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbsym l k 1 pc
0136 .dbsym l c 1 c
0136 .dbsym r j 22 c
0136 .dbsym r i 20 c
0136 .dbend
0136 .dbfunc e bus_reset _bus_reset fV
.even
0136 _bus_reset::
0136 .dbline -1
0136 .dbline 120
0136 ;
0136 ; void bus_reset(void)
0136 ; {
0136 .dbline -2
0136 .dbline 121
0136 ; }
0136 L28:
0136 .dbline 0 ; func end
0136 0895 ret
0138 .dbend
0138 .dbfunc e dma_eot _dma_eot fV
.even
0138 _dma_eot::
0138 .dbline -1
0138 .dbline 124
0138 ;
0138 ; void dma_eot(void)
0138 ; {
0138 .dbline -2
0138 .dbline 125
0138 ; }
0138 L29:
0138 .dbline 0 ; func end
0138 0895 ret
013A .dbend
013A .dbfunc e ReadEndpoint1 _ReadEndpoint1 fV
013A ; n -> R20,R21
013A ; j -> R20,R21
013A ; i -> R22,R23
013A ; buf -> R10,R11
013A ; len -> R22,R23
.even
013A _ReadEndpoint1::
013A 00D0 rcall push_gset3
013C 5901 movw R10,R18
013E B801 movw R22,R16
0140 .dbline -1
0140 .dbline 128
0140 ;
0140 ; void ReadEndpoint1(unsigned int len,unsigned int * buf)
0140 ; {
0140 .dbline 130
0140 ; unsigned int i,j,n;
0140 ; D12_COMMAND=2;
0140 82E0 ldi R24,2
0142 8093017F sts 32513,R24
0146 .dbline 131
0146 ; D12_COMMAND=0xf0;
0146 80EF ldi R24,240
0148 8093017F sts 32513,R24
014C .dbline 132
014C ; j= D12_DATA;
014C 4091007F lds R20,32512
0150 5527 clr R21
0152 .dbline 133
0152 ; j = D12_DATA;
0152 4091007F lds R20,32512
0156 5527 clr R21
0158 .dbline 134
0158 ; if(j>len)
0158 6417 cp R22,R20
015A 7507 cpc R23,R21
015C 08F4 brsh L31
015E .dbline 135
015E ; j=len;
015E AB01 movw R20,R22
0160 L31:
0160 .dbline 136
0160 ; for(i=0; i<j; i++)
0160 6627 clr R22
0162 7727 clr R23
0164 0EC0 rjmp L36
0166 L33:
0166 .dbline 137
0166 02E0 ldi R16,2
0168 10E0 ldi R17,0
016A 9B01 movw R18,R22
016C 00D0 rcall empy16s
016E F801 movw R30,R16
0170 EA0D add R30,R10
0172 FB1D adc R31,R11
0174 2090007F lds R2,32512
0178 3324 clr R3
017A 3182 std z+1,R3
017C 2082 std z+0,R2
017E L34:
017E .dbline 136
017E 6F5F subi R22,255 ; offset = 1
0180 7F4F sbci R23,255
0182 L36:
0182 .dbline 136
0182 6417 cp R22,R20
0184 7507 cpc R23,R21
0186 78F3 brlo L33
0188 .dbline 138
0188 ; *(buf+i) = D12_DATA;
0188 ; if(Rshu[0]==0xa1 && Rshu[1]==0xa2 && Rshu[2]==0xa3)
0188 80910000 lds R24,_Rshu
018C 90910100 lds R25,_Rshu+1
0190 813A cpi R24,161
0192 E0E0 ldi R30,0
0194 9E07 cpc R25,R30
0196 A1F4 brne L37
0198 80910200 lds R24,_Rshu+2
019C 90910300 lds R25,_Rshu+2+1
01A0 823A cpi R24,162
01A2 E0E0 ldi R30,0
01A4 9E07 cpc R25,R30
01A6 61F4 brne L37
01A8 80910400 lds R24,_Rshu+4
01AC 90910500 lds R25,_Rshu+4+1
01B0 833A cpi R24,163
01B2 E0E0 ldi R30,0
01B4 9E07 cpc R25,R30
01B6 21F4 brne L37
01B8 .dbline 139
01B8 ; {
01B8 .dbline 141
01B8 ;
01B8 ; adrstart=0xcc;
01B8 8CEC ldi R24,204
01BA 809350FF sts 65360,R24
01BE .dbline 142
01BE ; }
01BE 33C0 rjmp L38
01C0 L37:
01C0 .dbline 143
01C0 ; else if(Rshu[0]==0xb1 && Rshu[1]==0xb2 && Rshu[2]==0xb3)
01C0 80910000 lds R24,_Rshu
01C4 90910100 lds R25,_Rshu+1
01C8 813B cpi R24,177
01CA E0E0 ldi R30,0
01CC 9E07 cpc R25,R30
01CE 41F5 brne L41
01D0 80910200 lds R24,_Rshu+2
01D4 90910300 lds R25,_Rshu+2+1
01D8 823B cpi R24,178
01DA E0E0 ldi R30,0
01DC 9E07 cpc R25,R30
01DE 01F5 brne L41
01E0 80910400 lds R24,_Rshu+4
01E4 90910500 lds R25,_Rshu+4+1
01E8 833B cpi R24,179
01EA E0E0 ldi R30,0
01EC 9E07 cpc R25,R30
01EE C1F4 brne L41
01F0 .dbline 144
01F0 ; {
01F0 .dbline 145
01F0 ; adrstop=0xee;
01F0 8EEE ldi R24,238
01F2 809345FF sts 65349,R24
01F6 .dbline 146
01F6 ; Fifo1_Flag=0x00;
01F6 2224 clr R2
01F8 20920000 sts _Fifo1_Flag,R2
01FC .dbline 147
01FC ; Fifo2_Flag=0x00;
01FC 20920000 sts _Fifo2_Flag,R2
0200 .dbline 149
0200 ; //DDRD=0xfb;
0200 ; PORTD=0xdd;
0200 8DED ldi R24,221
0202 82BB out 0x12,R24
0204 .dbline 150
0204 ; for(n=0;n<6;n++)
0204 4427 clr R20
0206 5527 clr R21
0208 03C0 rjmp L48
020A L45:
020A .dbline 151
020A 0000 nop
020C L46:
020C .dbline 150
020C 4F5F subi R20,255 ; offset = 1
020E 5F4F sbci R21,255
0210 L48:
0210 .dbline 150
0210 4630 cpi R20,6
0212 E0E0 ldi R30,0
0214 5E07 cpc R21,R30
0216 C8F3 brlo L45
0218 .dbline 151
0218 ; cwait1;
0218 0000 nop
021A .dbline 152
021A ; PORTD=0xdf;
021A 8FED ldi R24,223
021C 82BB out 0x12,R24
021E .dbline 154
021E ;
021E ; }
021E 03C0 rjmp L42
0220 L41:
0220 .dbline 156
0220 ; else
0220 ; {
0220 .dbline 157
0220 ; D12_COMMAND=0xf2;
0220 82EF ldi R24,242
0222 8093017F sts 32513,R24
0226 .dbline 158
0226 ; }
0226 L42:
0226 L38:
0226 .dbline 160
0226 ;
0226 ; D12_COMMAND=0xf2;
0226 82EF ldi R24,242
0228 8093017F sts 32513,R24
022C .dbline -2
022C .dbline 162
022C ;
022C ; }
022C L30:
022C 00D0 rcall pop_gset3
022E .dbline 0 ; func end
022E 0895 ret
0230 .dbsym r n 20 i
0230 .dbsym r j 20 i
0230 .dbsym r i 22 i
0230 .dbsym r buf 10 pi
0230 .dbsym r len 22 i
0230 .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12-AVR.c
0000 _Rshu::
0000 .blkb 6
0006 .dbsym e Rshu _Rshu A[6:3]i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -