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

📄 usb_isr.tmp

📁 HT46RB50温度计,了解其usb通信
💻 TMP
📖 第 1 页 / 共 2 页
字号:

caackF:\project\HT46RB50 温度计\ASM\USB_ISR.ASM   1  0000              ;;Established date:		2006/03/01
   2  0000              ;;********************************************************************
   3  0000              ;;====================================================================
   4  0000              ISR_USB:     
   5  0000              	M_PUSH				;PUSH
aError(A0010) F:\project\HT46RB50 温度计\ASM\USB_ISR.ASM 5 : 非预期的符号 'M_PUSH'
babaaabaaaaaaagb 	CLR	INTC1.0			;Close USB interrupt
	CLR	INTC1.0			;Close USB interrupt
babaaabaaabaaahb 	SET	INTC0.0           	;Open other interrupt request
	SET	INTC0.0           	;Open other interrupt request
   8  0002              ;;	MOV	A,C_USBRegisterBank	;USB register bank(no need in HT46RB50
   9  0002              ;;	MOV	BP,A			;because it USB reg in bank0.)
  10  0002              ;;--------------------------------------------------------------------
babaaabaaacaaalb 	SNZ	F_Suspend                            
	SNZ	F_Suspend                            
babaaabaaadaaamb 	JMP	L_CheckAccessFIFO	;USB is work                       
	JMP	L_CheckAccessFIFO	;USB is work                       
  13  0004  0FF0        	MOV	A,11110000B		;USB is suspend                          
babaaabaaafaaaob 	ANDM 	A,USR			;clear all endpoint status
	ANDM 	A,USR			;clear all endpoint status
  15  0006              ;;--------------------------------------------------------------------
babaaabaaagaabab 	SZ	F_Resume		;USB is resume?(reset)                                    
	SZ	F_Resume		;USB is resume?(reset)                                    
babaaabaaahaabbb 	JMP	L_TurnOnUSB		;Yes(reset),Open USB                          
	JMP	L_TurnOnUSB		;Yes(reset),Open USB                          
babaaabaaaiaabcb 	JMP 	L_Exit_ISRUSB    	;No(suspend),return                    
	JMP 	L_Exit_ISRUSB    	;No(suspend),return                    
  19  0009              L_TurnOnUSB:
babaaabaaajaabeb 	SET	F_USBClockOn		;UCC.3,USB clock on
	SET	F_USBClockOn		;UCC.3,USB clock on
babaaabaaakaabfb 	JMP	L_Exit_ISRUSB		;return
	JMP	L_Exit_ISRUSB		;return
  22  000B              ;;--------------------------------------------------------------------
  23  000B              L_CheckAccessFIFO:
babaaabaaalaabib 	SET	F_USBClockOn		;Open USB clock
	SET	F_USBClockOn		;Open USB clock
babaaabaaamaabjb 	CLR	F_Suspend2		;clear USB low power mode
	CLR	F_Suspend2		;clear USB low power mode
  26  000D              
babaaabaaanaablb 	SZ 	F_AccessEP0		;endpoint0 USB?
	SZ 	F_AccessEP0		;endpoint0 USB?
babaaabaaaoaabmb 	JMP	L_AccessFIFO0		;EP0 service
	JMP	L_AccessFIFO0		;EP0 service
babaaabaaapaabnb 	SZ  	F_AccessEP1		;endpoint1 USB?
	SZ  	F_AccessEP1		;endpoint1 USB?
babaaabaabaaabob 	JMP	L_AccessFIFO1		;EP1 service
	JMP	L_AccessFIFO1		;EP1 service
babaaabaabbaabpb 	JMP	L_Exit_ISRUSB		;exit USB interrupt
	JMP	L_Exit_ISRUSB		;exit USB interrupt
  32  0012              ;;====================================================================
  33  0012              L_AccessFIFO0:
babaaabaabcaaccb 	SET	F_USBReset		;USB interrupt initial(?????)
	SET	F_USBReset		;USB interrupt initial(?????)
babaaabaabdaacdb 	CLR	F_AccessEP0		;Clear EP0 flag
	CLR	F_AccessEP0		;Clear EP0 flag
babaaabaabeaaceb 	MOV	A,C_MISC		;point MISC
	MOV	A,C_MISC		;point MISC
babaaabaabfaacfb 	MOV	MP1,A
	MOV	MP1,A
  38  0016                                                                     
babaaabaabgaachb 	SNZ	F_ControlEvent		;setup finally?		             
	SNZ	F_ControlEvent		;setup finally?		             
babaaabaabhaacib 	JMP	L_CheckSetupStage	;no,setup                    
	JMP	L_CheckSetupStage	;no,setup                    
  41  0018              		                                               
babaaabaabiaackb 	SNZ	R1.@Packet0		;receive 0-size from host?                                                  
	SNZ	R1.@Packet0		;receive 0-size from host?                                                  
babaaabaabjaaclb 	JMP	L_ProcessOutDataPacket 	;no,next check             
	JMP	L_ProcessOutDataPacket 	;no,next check             
  44  001A              ;;--------------------------------------------------------------------
  45  001A              L_StatusStage:                                          
babaaabaabkaacob 	CLR	R1.@Packet0		;receive 0-size packet,clear 0-size packet flag 
	CLR	R1.@Packet0		;receive 0-size packet,clear 0-size packet flag 
babaaabaablaacpb 	SNZ	R1.@SetupToken		;setup common?    			    
	SNZ	R1.@SetupToken		;setup common?    			    
babaaabaabmaadab         JMP	L_Exit_ISRUSB0		;no,exit USB interrupt                       
        JMP	L_Exit_ISRUSB0		;no,exit USB interrupt                       
  49  001D              ;;--------------------------------------------------------------------
  50  001D              L_CheckSetupStage:
babaaabaabnaaddb 	SNZ	R1.@SetupToken
	SNZ	R1.@SetupToken
babaaabaaboaadeb 	JMP	L_Exit_ISRUSB0
	JMP	L_Exit_ISRUSB0
  53  001F              L_SetupStage:
babaaabaabpaadgb 	CLR	R1.@SetupToken		;clear setup common flag
	CLR	R1.@SetupToken		;clear setup common flag
babaaabaacaaadhb 	CLR	R1.@Packet0		;clear 0-size packet flag
	CLR	R1.@Packet0		;clear 0-size packet flag
babaaabaacbaadib 	SET	F_ControlEvent		;set the flag of setup finally
	SET	F_ControlEvent		;set the flag of setup finally
babaaabaaccaadjb 	SET	F_SetupData		;set setup data flag
	SET	F_SetupData		;set setup data flag
babaaabaacdaadkb 	JMP	L_Exit_ISRUSB0		;exit
	JMP	L_Exit_ISRUSB0		;exit
  59  0024              ;;-------------------------------------------------------------------- 
  60  0024              L_ProcessOutDataPacket:                                           
babaaabaaceaadnb 	SZ	R1.@SetupToken		;next check,is setup command?
	SZ	R1.@SetupToken		;next check,is setup command?
  62  0025  2800     R  	JMP	L_SetupStage		;yes,jmp to setup service	
babaaabaacgaadpb 	CALL	SBR_FIFO0_RD_Check	;FIFO0 read ready check
	CALL	SBR_FIFO0_RD_Check	;FIFO0 read ready check
babaaabaachaaeab 	CLR	R1.@USB_REQ
	CLR	R1.@USB_REQ
babaaabaaciaaebb 	SNZ	Z
	SNZ	Z
babaaabaacjaaecb 	JMP	L_SendFIFO0		;ready=0,not ready for read FIFO,jmp to write FIFO check
	JMP	L_SendFIFO0		;ready=0,not ready for read FIFO,jmp to write FIFO check
  67  002A              ;       JMP	L_ReadFIFO0		;ready=1,ready for read
  68  002A              
  69  002A              ;;--------------------------------------------------------------------
  70  002A              ;;------------------ Read FIFO ---------------------------------------
  71  002A              L_ReadFIFO0:
babaaabaackaaeib 	SZ	F_SetupData		;FIFO data is setup data?
	SZ	F_SetupData		;FIFO data is setup data?
babaaabaaclaaejb 	JMP	L_GetSetupStage_Data	;Yes,jmp to get setup data
	JMP	L_GetSetupStage_Data	;Yes,jmp to get setup data
babaaabaacmaaekb 	CALL	SBR_FIFO0_RD_Check	;no,check RD
	CALL	SBR_FIFO0_RD_Check	;no,check RD
babaaabaacnaaelb 	CALL	SBR_ReadFIFO0		;Read FIFO0
	CALL	SBR_ReadFIFO0		;Read FIFO0
  76  002E              
babaaabaacoaaenb 	MOV	A,M_ReportIndex		;load report index
	MOV	A,M_ReportIndex		;load report index
babaaabaacpaaeob 	ADDM	A,PCL
	ADDM	A,PCL
babaaabaadaaaepb 	JMP	L_Exit_ISRUSB		;0:exit
	JMP	L_Exit_ISRUSB		;0:exit
babaaabaadbaafab 	JMP	L_SetFeature		;1:set feature
	JMP	L_SetFeature		;1:set feature
  81  0032              ;	JMP	L_SetOutput
  82  0032              ;;--------------------------------------------------------------------
  83  0032              ;;--------------------ouput data from host to device------------------
  84  0032              ;;--------------------------------------------------------------------
  85  0032              L_SetOutput:
babaaabaadcaafgb 	MOV	A,M_DataPacketLength	;load packet length which receive
	MOV	A,M_DataPacketLength	;load packet length which receive
babaaabaaddaafhb 	XOR	A,C_ReportSize 		;packet length=8?               
	XOR	A,C_ReportSize 		;packet length=8?               
babaaabaadeaafib 	SNZ	Z
	SNZ	Z
babaaabaadfaafjb 	JMP	L_StallPipe0		;no,error
	JMP	L_StallPipe0		;no,error
  90  0036              ;;	CALL	SBR_USBToCOM		;yes,output
babaaabaadgaaflb 	CLR 	M_ReportIndex		;clear report index
	CLR 	M_ReportIndex		;clear report index
babaaabaadhaafmb 	JMP	L_WriteDataToFIFO_0_Packet	;send a 0 size packet
	JMP	L_WriteDataToFIFO_0_Packet	;send a 0 size packet
  93  0038              ;;--------------------------------------------------------------------
  94  0038              L_SetFeature:
babaaabaadiaafpb 	CLR	M_ReportIndex		;clear report index
	CLR	M_ReportIndex		;clear report index
babaaabaadjaagab 	JMP	L_StallPipe0		;error
	JMP	L_StallPipe0		;error
  97  003A              ;;--------------------------------------------------------------------
  98  003A              L_GetSetupStage_Data:
babaaabaadkaagdb 	CLR	F_SetupData 		;clear the flag of setup data                         
	CLR	F_SetupData 		;clear the flag of setup data                         
babaaabaadlaageb 	CALL	SBR_FIFO0_RD_Check
	CALL	SBR_FIFO0_RD_Check
babaaabaadmaagfb 	CALL	SBR_ReadFIFO0   	;read FIFO 
	CALL	SBR_ReadFIFO0   	;read FIFO 
 102  003D                                 
babaaabaadnaaghb 	MOV	A,C_Stall
	MOV	A,C_Stall
babaaabaadoaagib 	MOV	MP1,A    
	MOV	MP1,A    
 105  003F              ;;	CLR	M_Stall.0		                           
 106  003F              ;;	MOV	A,M_Stall                            
 107  003F              ;;	MOV	R1,A			;clear EP0 error flag(???)       
 108  003F              
babaaabaadpaagnb 	CLR	F_SendData   		;clear send data flag                         
	CLR	F_SendData   		;clear send data flag                         
babaaabaaeaaagob 	CLR	M_ReportIndex		;clear report index
	CLR	M_ReportIndex		;clear report index
 111  0041                                      
babaaabaaebaahab 	MOV	A,C_FIFOSize
	MOV	A,C_FIFOSize
babaaabaaecaahbb 	XOR	A,M_DataPacketLength	;data packet length = 8 byte?
	XOR	A,M_DataPacketLength	;data packet length = 8 byte?
babaaabaaedaahcb 	SNZ	Z
	SNZ	Z
babaaabaaeeaahdb 	JMP	L_StallPipe0		;no,error.(setup data == 8 byte)
	JMP	L_StallPipe0		;no,error.(setup data == 8 byte)
 116  0045              		
babaaabaaefaahfb 	MOV	A,C_RequestType
	MOV	A,C_RequestType
babaaabaaegaahgb 	AND	A,T_RequestType		;check RequestType's D6..5.
	AND	A,T_RequestType		;check RequestType's D6..5.
babaaabaaehaahhb 	SWAP	ACC
	SWAP	ACC
babaaabaaeiaahib 	RR	ACC
	RR	ACC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -