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

📄 et44_usb_macro.inc

📁 在台湾义统公司ET44M210开发实验板环境下
💻 INC
字号:
// ====================================================================================
// Macro program (USB Library v1.2)
//
// ====================================================================================

;1 USB REGISTER ACCESS DELAY TIMEING
N_NOP					 		MACRO
									CALL	N_NOP_DELAY
								ENDM

;2 USB INITIAL SUB (USB ENABLE/BANK 1/IAP0 AUTO+1/FLAG SETTING/USB INT ENABLE/SPPED SELECT/PLUG IN)
_ADD_USB_INITIAL_SUB			MACRO
									CALL	USB_INITIAL
								ENDM

_ADD_USB_INITIAL_WORK_SUB		MACRO
								ENDM

;3 USB BUS RESET INT SUB (DEFAULT THE DEVICE WORK)
_ADD_USB_BUS_RESET_SUB			MACRO
									BC		BULK_STATE,CONFIG
								ENDM

;4 USB IDLE INT SUB	(PREPARE GO TO USB SUSPEND)
_ADD_USB_IDLE_INT_SUB			MACRO
								ENDM

;5 USB HUB DOWNSTREAM PORT WAKE-UP INT FROM SUSPEND
_ADD_USB_WAKEUP_INT_SUB			MACRO
								ENDM

;6 USB HOST RESUME INT
_ADD_USB_RESUME_INT_SUB			MACRO
								ENDM

;7 USB SOF INT (FOR COUNT TIMEING :1ms)
_ADD_USB_SOF_INT_SUB			MACRO
								ENDM

;8 USB EP1 INT (EP1 DATA MANAGEMENT)
_ADD_USB_EP1_SUB				MACRO
									CALL	ADD_USB_EP1_SUB								
								ENDM

;8.1 USB EP1 WORK MACRO (EP1 OUT/IN DATA MANAGEMENT IN MAIN LOOP)
_ADD_USB_EP1_WORK_SUB			MACRO
									CALL	ADD_USB_EP1_WORK_SUB
								ENDM

;24								
_ADD_USB_DEVICE_CONFIG_OK		MACRO  			
									BS		BULK_STATE,CONFIG
								ENDM

;25								
_ADD_USB_SET_REPORT_SUB			MACRO
							// VENDER COMMAND OUT DATA
									BC		FC_STATUS,DATA_OUT
									MOV		A,EP0RXDAR
									MOV		TEMP1,A
									MOV		A,EP0RXDAR
									MOV		BULK_OUT_BUFH,A
									MOV		A,EP0RXDAR
									MOV		BULK_OUT_BUFM,A
									MOV		A,EP0RXDAR
									MOV		BULK_OUT_BUFL,A
									
									BS		EP2CSR,RXTXEN	
										N_NOP	
									BS		BULK_STATE,IMAGE_RESTART
								ENDM

;28								
_ADD_USB_STRING_INDEX_HM		MACRO
									MOV		A,#High(String_index_HManufacture_table<<1)
 									MOV		TBHPTR,A
 									MOV		A,#Low(String_index_HManufacture_table<<1)
 									MOV		TBLPTR,A
 									JMP		F_TABLE_READ
								ENDM

;29
_ADD_USB_STRING_INDEX_HP		MACRO
									MOV		A,#High(String_index_HProduct_table<<1)
 									MOV		TBHPTR,A
 									MOV		A,#Low(String_index_HProduct_table<<1)
 									MOV		TBLPTR,A
 									JMP		F_TABLE_READ
								ENDM

;38 			
_ADD_USB_HID_DESCRIPTION_SUB	MACRO
	if _USB_HID	==	_ENABLE
									MOV		A,#High(Descriptor_type_21_index00_table<<1)
 									MOV		TBHPTR,A
 									MOV		A,#Low(Descriptor_type_21_index00_table<<1)
 									MOV		TBLPTR,A
 							//table length
									JMP		F_TABLE_READ
	endif
								ENDM

_ADD_USB_HID_DESCRIPTION_SUB1	MACRO
	if _USB_CD_bNumInterface	==	2
									MOV		A,#High(Descriptor_type_21_index01_table<<1)
 									MOV		TBHPTR,A
 									MOV		A,#Low(Descriptor_type_21_index01_table<<1)
 									MOV		TBLPTR,A
 							//table length
									JMP		F_TABLE_READ
	endif
								ENDM

;39 			
_ADD_USB_HID_REPORT_SUB1		MACRO
	if _USB_HID	==	_ENABLE
									MOV		A,#High(Descriptor_type_22_index00_table<<1)
 									MOV		TBHPTR,A
 									MOV		A,#Low(Descriptor_type_22_index00_table<<1)
 									MOV		TBLPTR,A
							//table length
		 							MOV		A,#_USB_HID_wDescriptorLength0
 									MOV		TBLL,A
									JMP		F_TABLE_READ_1
	endif
								ENDM

;40 			
_ADD_USB_HID_REPORT_SUB2		MACRO
	if _USB_CD_bNumInterface	==	2
									MOV		A,#High(Descriptor_type_22_index01_table<<1)
 									MOV		TBHPTR,A
 									MOV		A,#Low(Descriptor_type_22_index01_table<<1)
 									MOV		TBLPTR,A
 							//table length
		 							MOV		A,#_USB_HID_wDescriptorLength1
 									MOV		TBLL,A
									JMP		F_TABLE_READ_1
	endif
								ENDM
 			
								
;*********************************************************
ADD_USB_EP1_SUB:		
			;BTG		PORTA,CLK														
			JBS		BULK_STATE,IMAGE_END,IMAGE_END_CHK
			BS		BULK_STATE,BEGIN_PUT_EP1_DATA
			RET		
IMAGE_END_CHK:											
			BC		BULK_STATE,IMAGE_END
			RET	
			
ADD_USB_EP1_WORK_SUB:
			;BTG		PORTA,CLK
			MOV		A,#0X01
			MOV		RAMBS1,A
			MOV		A,#EP1CSR
			MOV		IAP1,A
EP1_WAIT:
			;BTG		PORTA,CLK
			JBS		IAC1,SESTALL,EP1_WAIT
			JBS		IAC1,RXTXEN,EP1_WAIT

			;BTG		PORTA,CLK
			mov		a,#0x40
			mov		temp1,a
			MOV		A,#EP1CTR
			MOV		IAP1,A

			;BTG		PORTA,CLK
			MOV		A,TEMP1
			MOV		IAC1,A
			MOV		A,#EP1DAR

			;BTG		PORTA,CLK
			MOV		IAP1,A
				NOP
				NOP
				;NOP
				;NOP
EP1_LOOP:
			;BTG		PORTA,CLK
			MOV		A,IAC0
			MOV		IAC1,A	
			DJZ		TEMP1,EP1_LOOP_END
			JMP		EP1_LOOP									
EP1_LOOP_END:

			;BTG		PORTA,CLK
			MOV		A,#EP1CSR
			MOV		IAP1,A
			NOP
				
			;BTG		PORTA,CLK
			BS		IAC1,RXTXEN
				N_NOP						
EP1_RET:
			BC		BULK_STATE,BEGIN_PUT_EP1_DATA

			;BTG		PORTA,CLK	
			RET							
												

// **********************************************
// Macro Sub N_NOP
// **********************************************
N_NOP_DELAY:
	if _USB_LOW_SPEED	==	_DISABLE
			NOP
			NOP
			NOP
			RET
	else
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			RET
	endif

⌨️ 快捷键说明

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