📄 usb_isr.tmp
字号:
babaaabaaejaahjb ADDM A,PCL
ADDM A,PCL
babaaabaaekaahkb JMP L_StandardRequest ;0:standard request
JMP L_StandardRequest ;0:standard request
babaaabaaelaahlb JMP L_ClassRequest ;1:class request
JMP L_ClassRequest ;1:class request
babaaabaaemaahmb JMP L_StallPipe0 ;2:factory reques. 3:NULL
JMP L_StallPipe0 ;2:factory reques. 3:NULL
125 004D
126 004D ;;--------------------------------------------------------------------
127 004D ;;-------------------- Write FIFO ------------------------------------
128 004D L_SendFIFO0:
babaaabaaenaaibb SZ F_SetupData ;the data is setup data?
SZ F_SetupData ;the data is setup data?
babaaabaaeoaaicb JMP L_Exit_ISRUSB0 ;yes,exit
JMP L_Exit_ISRUSB0 ;yes,exit
babaaabaaepaaidb CALL SBR_FIFO0_WR_Check ;Write FIFO check
CALL SBR_FIFO0_WR_Check ;Write FIFO check
babaaabaafaaaieb CLR R1.@USB_Req
CLR R1.@USB_Req
babaaabaafbaaifb SNZ Z
SNZ Z
babaaabaafcaaigb JMP L_Exit_ISRUSB0 ;not ready for write,exit
JMP L_Exit_ISRUSB0 ;not ready for write,exit
135 0053
babaaabaafdaaiib SNZ F_SendContinue ;continue send data which for setup command
SNZ F_SendContinue ;continue send data which for setup command
babaaabaafeaaijb JMP L_Exit_ISRUSB0 ;no,exit
JMP L_Exit_ISRUSB0 ;no,exit
babaaabaaffaaikb MOV A,M_TBLPFIFO ;load TBLP address
MOV A,M_TBLPFIFO ;load TBLP address
babaaabaafgaailb MOV TBLP,A
MOV TBLP,A
babaaabaafhaaimb JMP L_WriteDataToBuffer ;write data to FIFO buffer
JMP L_WriteDataToBuffer ;write data to FIFO buffer
141 0058 ;;--------------------------------------------------------------------
142 0058 ;;------------- send any bytes ---------------------------------------
143 0058 L_WriteDataToFIFO_AnyBytes:
babaaabaafiaajab MOV M_DataPacketLength,A ;save FIFO buffer's length
MOV M_DataPacketLength,A ;save FIFO buffer's length
babaaabaafjaajbb CLR F_ControlEvent ;clear the flag of setup finally
CLR F_ControlEvent ;clear the flag of setup finally
babaaabaafkaajcb JMP L_WriteDataToFIFO ;write FIFO
JMP L_WriteDataToFIFO ;write FIFO
147 005B ;;--------------------------------------------------------------------
148 005B ;;------------ send 8 byte data --------------------------------------
149 005B L_WriteDataToFIFO:
babaaabaaflaajgb CLR F_BufferFull ;clear the flag of buffer full
CLR F_BufferFull ;clear the flag of buffer full
babaaabaafmaajhb CALL SBR_FIFO0_WR_Check ;FIFO write check
CALL SBR_FIFO0_WR_Check ;FIFO write check
babaaabaafnaajib SZ Z ;ready?
SZ Z ;ready?
babaaabaafoaajjb JMP L_WriteDataToFIFOOK ;yes,jmp to write data
JMP L_WriteDataToFIFOOK ;yes,jmp to write data
babaaabaafpaajkb CLR R1.@USB_Req ;no,clear req
CLR R1.@USB_Req ;no,clear req
babaaabaagaaajlb SZ R1.@Packet0 ;send 0-size packet?
SZ R1.@Packet0 ;send 0-size packet?
babaaabaagbaajmb JMP L_Exit_ISRUSB0 ;yes,exit
JMP L_Exit_ISRUSB0 ;yes,exit
babaaabaagcaajnb SZ R1.@SetupToken ;send data is the setup command?
SZ R1.@SetupToken ;send data is the setup command?
babaaabaagdaajob JMP L_Exit_ISRUSB0 ;yes,exit
JMP L_Exit_ISRUSB0 ;yes,exit
159 0064 2800 R JMP L_WriteDataToFIFO ;no,continue FIFO write enable check
160 0065 L_WriteDataToFIFOOK:
babaaabaagfaakbb CALL SBR_WriteFIFO0 ;write FIFO from buffer
CALL SBR_WriteFIFO0 ;write FIFO from buffer
babaaabaaggaakcb SET F_DataUpdate ;set the flag of data updata
SET F_DataUpdate ;set the flag of data updata
babaaabaaghaakdb JMP L_Exit_ISRUSB0
JMP L_Exit_ISRUSB0
164 0068 ;;--------------------------------------------------------------------
165 0068 ;;----------- send 0 byte data ---------------------------------------
166 0068 L_WriteDataToFIFO_0_Packet:
babaaabaagiaakhb CLR F_BufferFull ;clear buffer full flag
CLR F_BufferFull ;clear buffer full flag
babaaabaagjaakib CALL SBR_FIFO0_WR_Check ;check ready for write data
CALL SBR_FIFO0_WR_Check ;check ready for write data
babaaabaagkaakjb SZ Z
SZ Z
babaaabaaglaakkb JMP L_Write0PacketToFIFO ;yes,write
JMP L_Write0PacketToFIFO ;yes,write
babaaabaagmaaklb CLR R1.@USB_Req
CLR R1.@USB_Req
babaaabaagnaakmb SZ R1.@Packet0
SZ R1.@Packet0
babaaabaagoaaknb JMP L_Exit_ISRUSB0
JMP L_Exit_ISRUSB0
babaaabaagpaakob SZ R1.@SetupToken
SZ R1.@SetupToken
babaaabaahaaakpb JMP L_Exit_ISRUSB0
JMP L_Exit_ISRUSB0
176 0071 2800 R JMP L_WriteDataToFIFO_0_Packet ;no,continue check
177 0072 L_Write0PacketToFIFO:
babaaabaahcaalcb CALL SBR_Write_0_Packet ;write 0 size packet
CALL SBR_Write_0_Packet ;write 0 size packet
babaaabaahdaaldb CLR F_ControlEvent ;clear the flag of setup command receive
CLR F_ControlEvent ;clear the flag of setup command receive
babaaabaaheaaleb JMP L_Exit_ISRUSB0
JMP L_Exit_ISRUSB0
181 0075 ;;--------------------------------------------------------------------
182 0075 L_Stallpipe0:
babaaabaahfaalhb MOV A,C_STALL
MOV A,C_STALL
babaaabaahgaalib MOV MP1,A
MOV MP1,A
babaaabaahhaaljb SET M_STALL.0 ;set the error flag of EP0
SET M_STALL.0 ;set the error flag of EP0
babaaabaahiaalkb SET R1.0
SET R1.0
babaaabaahjaallb JMP L_Exit_ISRUSB
JMP L_Exit_ISRUSB
188 007A ;;--------------------------------------------------------------------
189 007A L_Exit_ISRUSB0:
babaaabaahkaalob CLR USR.0 ;clear EP0 request
CLR USR.0 ;clear EP0 request
babaaabaahlaalpb JMP L_Exit_ISRUSB
JMP L_Exit_ISRUSB
192 007C ;;********************************************************************
193 007C ;;**************************input data to host************************
194 007C ;;********************************************************************
195 007C ;;====================================================================
196 007C L_AccessFIFO1:
babaaabaahmaamfb SZ M_ReportIndex
SZ M_ReportIndex
babaaabaahnaamgb JMP L_ExitISRUSB1
JMP L_ExitISRUSB1
199 007E
babaaabaahoaamib CALL SBR_FIFO1_WR_Check ;check FIFO can write
CALL SBR_FIFO1_WR_Check ;check FIFO can write
babaaabaahpaamjb SNZ Z
SNZ Z
babaaabaaiaaamkb JMP L_ExitISRUSB1 ;not ready to write,exit
JMP L_ExitISRUSB1 ;not ready to write,exit
203 0081
204 0081 ;;--------------------------------------------------------------------
205 0081 L_SendFIFOInterruptIn:
babaaabaaibaamob SNZ F_AD_FULL ;AD receive end?
SNZ F_AD_FULL ;AD receive end?
babaaabaaicaampb JMP L_Exit_ISRUSB ;no,exi
JMP L_Exit_ISRUSB ;no,exi
babaaabaaidaanab MOV A,OFFSET M_FIFOBAK0
MOV A,OFFSET M_FIFOBAK0
babaaabaaieaanbb MOV MP0,A
MOV MP0,A
babaaabaaifaancb MOV A,OFFSET M_AD_BUF0
MOV A,OFFSET M_AD_BUF0
babaaabaaigaandb MOV MP1,A
MOV MP1,A
212 0087
babaaabaaihaanfb MOV A,R1 ;LOAD AD
MOV A,R1 ;LOAD AD
babaaabaaiiaangb MOV R0,A
MOV R0,A
babaaabaaijaanhb INC MP0
INC MP0
babaaabaaikaanib INC MP1
INC MP1
babaaabaailaanjb SDZ M_AD_COUNT
SDZ M_AD_COUNT
218 008C 2800 R JMP $-5 ;save data in FIFO buffer
219 008D
babaaabaainaanmb MOV A,C_ReportSize
MOV A,C_ReportSize
babaaabaaioaannb MOV M_DataPacketLength,A
MOV M_DataPacketLength,A
babaaabaaipaanob CALL SBR_FIFO1_WR_Check
CALL SBR_FIFO1_WR_Check
babaaabaajaaanpb CALL SBR_WriteFIFO1
CALL SBR_WriteFIFO1
babaaabaajbaaoab CLR F_AD_FULL
CLR F_AD_FULL
225 0092 ;;--------------------------------------------------------------------
226 0092 L_ExitISRUSB1:
babaaabaajcaaodb CLR F_AccessEP1
CLR F_AccessEP1
babaaabaajdaaoeb JMP L_Exit_ISRUSB
JMP L_Exit_ISRUSB
229 0094 ;;********************************************************************
230 0094 L_Exit_ISRUSB:
babaaabaajeaaohb CLR INTC0.0 ;Clear other interrupt request
CLR INTC0.0 ;Clear other interrupt request
babaaabaajfaaoib SET INTC1.0 ;Open USB interrupt
SET INTC1.0 ;Open USB interrupt
233 0096 M_POP
aError(A0010) F:\project\HT46RB50 温度计\ASM\USB_ISR.ASM 233 : 非预期的符号 'M_POP'
234 0096 0004 RETI
235 0097 ;;********************************************************************
236 0097
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -