?? d12isr.lis
字號:
0166 40924000 sts _XmtBuff+64,R4
016A .dbline 193
; D12_COMMAND = 0xfa;//設置緩沖區(qū)有效(滿標志)
016A 8AEF ldi R24,250
016C 8093017C sts 31745,R24
0170 .dbline 194
; csram;
0170 609301FC sts 0xfc01,R22
0174 .dbline 194
0174 .dbline -2
0174 .dbline 195
; }
0174 L25:
0174 00D0 rcall pop_gset1
0176 .dbline 0 ; func end
0176 0895 ret
0178 .dbsym r j 16 c
0178 .dbsym r k 18 c
0178 .dbsym r i 20 c
0178 .dbfunc s BULK_submit _BULK_submit fI
; j -> R16
; k -> R18
; i -> R20
.even
0178 _BULK_submit::
0178 00D0 rcall push_gset1
017A .dbline -1
017A .dbline 218
; /************************************************************
; **工程名稱:U盤固件程序開發(fā)
; **編譯器類型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **創(chuàng)建人:陳馳
; **所屬單位:湖南大學計算機與通信學院
;
; **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **時鐘頻率:8MHZ
;
; **函數功能:BULK端點傳輸提交
; **函數輸入參數及說明:無
;
; **函數返回值:無
; **在本函數以外定義的變量:傳輸結構體
; **調用的函數說明:
;
; **修改人:陳馳
; **修改日期:2004.4.30
; **修改說明:創(chuàng)建
; *************************************************************/
; void BULK_submit(void)
; {
017A .dbline 220
; unsigned char i,j,k;
; if(64 > XmtBuff.wrLength)
017A 30904100 lds R3,_XmtBuff+64+1
017E 20904000 lds R2,_XmtBuff+64
0182 80E4 ldi R24,64
0184 90E0 ldi R25,0
0186 2816 cp R2,R24
0188 3906 cpc R3,R25
018A 18F4 brsh L38
018C .dbline 221
; {
018C .dbline 222
; j = XmtBuff.wrLength;
018C 022D mov R16,R2
018E 132D mov R17,R3
0190 .dbline 223
; }else
0190 01C0 rjmp L39
0192 L38:
0192 .dbline 224
; {
0192 .dbline 225
; j = 64;
0192 00E4 ldi R16,64
0194 .dbline 226
; }
0194 L39:
0194 .dbline 227
; D12_COMMAND = 0x05;// 選擇端點(指針指向0位置)
0194 85E0 ldi R24,5
0196 8093017C sts 31745,R24
019A .dbline 228
; cwait;
019A 0000 nop
019C .dbline 229
; D12_COMMAND = 0xf0;// 寫緩沖區(qū)
019C 80EF ldi R24,240
019E 8093017C sts 31745,R24
01A2 .dbline 230
; cwait;
01A2 0000 nop
01A4 .dbline 238
; /****************************
; 緩沖區(qū)數據結構:
; 字節(jié)1:保留,可為任意值
; 字節(jié)2:數據字節(jié)的數目/長度
; 字節(jié)3:數據字節(jié)1
; 字節(jié)4:數據字節(jié)2
; *****************************/
; D12_DATA = 0x00;//寫字節(jié)1
01A4 2224 clr R2
01A6 2092007C sts 31744,R2
01AA .dbline 239
; cwait;
01AA 0000 nop
01AC .dbline 240
; D12_DATA = j;//寫字節(jié)2
01AC 0093007C sts 31744,R16
01B0 .dbline 241
; csram;
01B0 609301FC sts 0xfc01,R22
01B4 .dbline 241
01B4 .dbline 247
; /*****************************
; 判斷輸出
; XmtBuff.p_p = 0:輸出一般數據
; XmtBuff.p_p = 1:輸出CONST數據
; ******************************/
; if(XmtBuff.p_p)
01B4 20904600 lds R2,_XmtBuff+70
01B8 2220 tst R2
01BA 11F1 breq L42
01BC .dbline 248
; {
01BC .dbline 249
; for(i=0;i<j ;i++)
01BC 4427 clr R20
01BE 11C0 rjmp L48
01C0 L45:
01C0 .dbline 250
01C0 .dbline 251
01C0 30904300 lds R3,_XmtBuff+66+1
01C4 20904200 lds R2,_XmtBuff+66
01C8 442E mov R4,R20
01CA 5524 clr R5
01CC 420C add R4,R2
01CE 531C adc R5,R3
01D0 E42D mov R30,R4
01D2 F52D mov R31,R5
01D4 C895 lpm
01D6 202D mov R18,R0
01D8 .dbline 252
01D8 2093007C sts 31744,R18
01DC .dbline 253
01DC 609301FC sts 0xfc01,R22
01E0 .dbline 253
01E0 .dbline 254
01E0 L46:
01E0 .dbline 249
01E0 4395 inc R20
01E2 L48:
01E2 .dbline 249
01E2 4017 cp R20,R16
01E4 68F3 brlo L45
01E6 .dbline 255
; {
; k = *(XmtBuff.pp+i);
; D12_DATA = k;//寫數據字節(jié)
; csram;
; }
; XmtBuff.pp += j;
01E6 30904300 lds R3,_XmtBuff+66+1
01EA 20904200 lds R2,_XmtBuff+66
01EE 402E mov R4,R16
01F0 5524 clr R5
01F2 420C add R4,R2
01F4 531C adc R5,R3
01F6 50924300 sts _XmtBuff+66+1,R5
01FA 40924200 sts _XmtBuff+66,R4
01FE .dbline 256
; }else
01FE 1EC0 rjmp L43
0200 L42:
0200 .dbline 257
; {
0200 .dbline 258
; for(i=0;i<j;i++)
0200 4427 clr R20
0202 0EC0 rjmp L54
0204 L51:
0204 .dbline 259
0204 .dbline 260
0204 30904500 lds R3,_XmtBuff+68+1
0208 20904400 lds R2,_XmtBuff+68
020C E42F mov R30,R20
020E FF27 clr R31
0210 E20D add R30,R2
0212 F31D adc R31,R3
0214 2081 ldd R18,z+0
0216 .dbline 261
0216 2093007C sts 31744,R18
021A .dbline 262
021A 609301FC sts 0xfc01,R22
021E .dbline 262
021E .dbline 263
021E L52:
021E .dbline 258
021E 4395 inc R20
0220 L54:
0220 .dbline 258
0220 4017 cp R20,R16
0222 80F3 brlo L51
0224 .dbline 264
; {
; k = *(XmtBuff.p+i);
; D12_DATA = k;//寫數據字節(jié)
; csram;
; }
; XmtBuff.p += j;
0224 30904500 lds R3,_XmtBuff+68+1
0228 20904400 lds R2,_XmtBuff+68
022C 402E mov R4,R16
022E 5524 clr R5
0230 420C add R4,R2
0232 531C adc R5,R3
0234 50924500 sts _XmtBuff+68+1,R5
0238 40924400 sts _XmtBuff+68,R4
023C .dbline 265
; }
023C L43:
023C .dbline 266
; XmtBuff.wrLength -= j;
023C 202E mov R2,R16
023E 3324 clr R3
0240 50904100 lds R5,_XmtBuff+64+1
0244 40904000 lds R4,_XmtBuff+64
0248 4218 sub R4,R2
024A 5308 sbc R5,R3
024C 50924100 sts _XmtBuff+64+1,R5
0250 40924000 sts _XmtBuff+64,R4
0254 .dbline 267
; D12_COMMAND = 0xfa;// 設置 IN 緩沖區(qū)有效(滿標志)
0254 8AEF ldi R24,250
0256 8093017C sts 31745,R24
025A .dbline 268
; csram;
025A 609301FC sts 0xfc01,R22
025E .dbline 268
025E .dbline -2
025E .dbline 269
; }
025E L37:
025E 00D0 rcall pop_gset1
0260 .dbline 0 ; func end
0260 0895 ret
0262 .dbsym r j 16 c
0262 .dbsym r k 18 c
0262 .dbsym r i 20 c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -