📄 d12-avr.lis
字号:
.module D12-AVR.c
.area data(ram, con, rel)
0000 _q::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12-AVR.c
0002 .dbsym e q _q I
.area text(rom, con, rel)
0000 .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12-AVR.c
0000 .dbfunc e D12_int _D12_int fV
0000 ; k -> <dead>
0000 ; c -> <dead>
0000 ; j -> R22
0000 ; i -> R20
.even
0000 _D12_int::
0000 00D0 rcall push_gset2
0002 .dbline -1
0002 .dbline 9
0002 ; #include "io8515v.h"
0002 ; #include "d12head.h"
0002 ;
0002 ; unsigned int Rshu[3];
0002 ; int q=0;
0002 ; //#define D12_suspend (PINB & 0x01)
0002 ;
0002 ; void D12_int(void)
0002 ; {
0002 .dbline 10
0002 ; unsigned char i=0,j,c,*k;//三个变量,一个指针
0002 4427 clr R20
0004 .dbline 12
0004 ;
0004 ; SREG = 0x00;//全局中断使能
0004 2224 clr R2
0006 2FBE out 0x3f,R2
0008 .dbline 14
0008 ;
0008 ; D12_COMMAND = 0xf4; // 读中断寄存器
0008 84EF ldi R24,244
000A 8093017F sts 32513,R24
000E .dbline 15
000E ; cwait1;
000E 0000 nop
0010 .dbline 15
0010 0000 nop
0012 .dbline 16
0012 ; i=D12_DATA;
0012 4091007F lds R20,32512
0016 .dbline 17
0016 ; csram;
0016 609301FC sts 0xfc01,R22
001A .dbline 17
001A .dbline 18
001A ; if(i & 0x01) //ENDP0_OUT
001A 40FF sbrs R20,0
001C 0DC0 rjmp L8
001E .dbline 19
001E ; {
001E .dbline 20
001E ; D12_COMMAND = 0x40; //读 OUT 最后状态
001E 80E4 ldi R24,64
0020 8093017F sts 32513,R24
0024 .dbline 21
0024 ; cwait1;
0024 0000 nop
0026 .dbline 21
0026 0000 nop
0028 .dbline 22
0028 ; i= D12_DATA;
0028 4091007F lds R20,32512
002C .dbline 23
002C ; csram;
002C 609301FC sts 0xfc01,R22
0030 .dbline 23
0030 .dbline 24
0030 ; if (i & 0x20) //收到 SETUP 包
0030 45FF sbrs R20,5
0032 7DC0 rjmp L9
0034 .dbline 25
0034 ; {
0034 .dbline 26
0034 ; Setup_control();
0034 00D0 rcall _Setup_control
0036 .dbline 27
0036 ; }
0036 .dbline 28
0036 ; }
0036 7BC0 rjmp L9
0038 L8:
0038 .dbline 29
0038 ; else if(i & 0x02) //ENDP0_IN
0038 41FF sbrs R20,1
003A 0BC0 rjmp L12
003C .dbline 30
003C ; {
003C .dbline 31
003C ; D12_COMMAND = 0x41;//读 in 最后状态
003C 81E4 ldi R24,65
003E 8093017F sts 32513,R24
0042 .dbline 32
0042 ; cwait1;
0042 0000 nop
0044 .dbline 32
0044 0000 nop
0046 .dbline 33
0046 ; i = D12_DATA;
0046 4091007F lds R20,32512
004A .dbline 34
004A ; csram;
004A 609301FC sts 0xfc01,R22
004E .dbline 34
004E .dbline 35
004E ; USB_submit();
004E 00D0 rcall _USB_submit
0050 .dbline 36
0050 ; }
0050 6EC0 rjmp L13
0052 L12:
0052 .dbline 37
0052 ; else if(i & 0x04)//ENDP1_OUT
0052 42FF sbrs R20,2
0054 0EC0 rjmp L14
0056 .dbline 38
0056 ; {
0056 .dbline 39
0056 ; D12_COMMAND = 0x42;//读 out 最后状态
0056 82E4 ldi R24,66
0058 8093017F sts 32513,R24
005C .dbline 40
005C ; cwait;
005C 0000 nop
005E .dbline 41
005E ; i = D12_DATA;
005E 4091007F lds R20,32512
0062 .dbline 42
0062 ; csram;
0062 609301FC sts 0xfc01,R22
0066 .dbline 42
0066 .dbline 43
0066 ; ReadEndpoint1(3,Rshu);
0066 20E0 ldi R18,<_Rshu
0068 30E0 ldi R19,>_Rshu
006A 03E0 ldi R16,3
006C 10E0 ldi R17,0
006E 65D0 rcall _ReadEndpoint1
0070 .dbline 45
0070 ;
0070 ; }
0070 5EC0 rjmp L15
0072 L14:
0072 .dbline 46
0072 ; else if(i & 0x08)//ENDP1_IN
0072 43FF sbrs R20,3
0074 19C0 rjmp L16
0076 .dbline 47
0076 ; {
0076 .dbline 48
0076 ; D12_COMMAND = 0x43;//读 in 最后状态
0076 83E4 ldi R24,67
0078 8093017F sts 32513,R24
007C .dbline 49
007C ; cwait1;
007C 0000 nop
007E .dbline 49
007E 0000 nop
0080 .dbline 50
0080 ; i = D12_DATA;
0080 4091007F lds R20,32512
0084 .dbline 51
0084 ; cwait1;
0084 0000 nop
0086 .dbline 51
0086 0000 nop
0088 .dbline 52
0088 ; csram;
0088 609301FC sts 0xfc01,R22
008C .dbline 52
008C .dbline 53
008C ; D12_COMMAND = 3;// 选择 IN 端点(指针指向0位置)
008C 83E0 ldi R24,3
008E 8093017F sts 32513,R24
0092 .dbline 54
0092 ; cwait;
0092 0000 nop
0094 .dbline 55
0094 ; D12_COMMAND = 0xf0;// 写缓冲区
0094 80EF ldi R24,240
0096 8093017F sts 32513,R24
009A .dbline 56
009A ; cwait;
009A 0000 nop
009C .dbline 57
009C ; D12_DATA = 0;
009C 2224 clr R2
009E 2092007F sts 32512,R2
00A2 .dbline 58
00A2 ; csram;
00A2 609301FC sts 0xfc01,R22
00A6 .dbline 58
00A6 .dbline 61
00A6 ; // WriteEndpoint1();
00A6 ;
00A6 ; }
00A6 43C0 rjmp L17
00A8 L16:
00A8 .dbline 62
00A8 ; else if(i & 0x10)//ENDP2_out 对应管道2
00A8 44FF sbrs R20,4
00AA 1BC0 rjmp L18
00AC .dbline 63
00AC ; {
00AC .dbline 64
00AC ; D12_COMMAND = 0x44;//读 in 最后状态
00AC 84E4 ldi R24,68
00AE 8093017F sts 32513,R24
00B2 .dbline 65
00B2 ; cwait1;
00B2 0000 nop
00B4 .dbline 65
00B4 0000 nop
00B6 .dbline 66
00B6 ; i = D12_DATA;
00B6 4091007F lds R20,32512
00BA .dbline 67
00BA ; cwait1;
00BA 0000 nop
00BC .dbline 67
00BC 0000 nop
00BE .dbline 68
00BE ; D12_COMMAND = 4;// 选择 IN 端点(指针指向0位置)
00BE 84E0 ldi R24,4
00C0 8093017F sts 32513,R24
00C4 .dbline 69
00C4 ; cwait;
00C4 0000 nop
00C6 .dbline 70
00C6 ; D12_COMMAND = 0xf0;// 读缓冲区
00C6 80EF ldi R24,240
00C8 8093017F sts 32513,R24
00CC .dbline 71
00CC ; cwait1;
00CC 0000 nop
00CE .dbline 71
00CE 0000 nop
00D0 .dbline 72
00D0 ; j=D12_DATA;
00D0 6091007F lds R22,32512
00D4 .dbline 73
00D4 ; cwait1;
00D4 0000 nop
00D6 .dbline 73
00D6 0000 nop
00D8 .dbline 74
00D8 ; j=D12_DATA; //数据字节的长度
00D8 6091007F lds R22,32512
00DC .dbline 75
00DC ; csram;
00DC 609301FC sts 0xfc01,R22
00E0 .dbline 75
00E0 .dbline 77
00E0 ; // flashWrite(j);
00E0 ; }
00E0 26C0 rjmp L19
00E2 L18:
00E2 .dbline 78
00E2 ; else if(i & 0x20)//ENDP2_IN 对应管道3
00E2 45FF sbrs R20,5
00E4 18C0 rjmp L20
00E6 .dbline 79
00E6 ; {
00E6 .dbline 80
00E6 ; D12_COMMAND = 0x45;//读 in 最后状态
00E6 85E4 ldi R24,69
00E8 8093017F sts 32513,R24
00EC .dbline 81
00EC ; cwait1;
00EC 0000 nop
00EE .dbline 81
00EE 0000 nop
00F0 .dbline 82
00F0 ; i = D12_DATA;
00F0 4091007F lds R20,32512
00F4 .dbline 83
00F4 ; cwait1;
00F4 0000 nop
00F6 .dbline 83
00F6 0000 nop
00F8 .dbline 84
00F8 ; D12_COMMAND = 5;// 选择 IN 端点(指针指向0位置)
00F8 85E0 ldi R24,5
00FA 8093017F sts 32513,R24
00FE .dbline 85
00FE ; cwait;
00FE 0000 nop
0100 .dbline 86
0100 ; D12_COMMAND = 0xf0;// 写缓冲区
0100 80EF ldi R24,240
0102 8093017F sts 32513,R24
0106 .dbline 87
0106 ; cwait;
0106 0000 nop
0108 .dbline 88
0108 ; D12_DATA = 0;
0108 2224 clr R2
010A 2092007F sts 32512,R2
010E .dbline 89
010E ; csram;
010E 609301FC sts 0xfc01,R22
0112 .dbline 89
0112 .dbline 90
0112 ; flashRead();
0112 00D0 rcall _flashRead
0114 .dbline 91
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -