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

📄 usb_isr.tmp

📁 HT46RB50温度计,了解其usb通信
💻 TMP
📖 第 1 页 / 共 2 页
字号:
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 + -