usbinit.asm

来自「mcs51,2051,x86系列MCU」· 汇编 代码 · 共 114 行

ASM
114
字号
##82930H USB#
##82930H INIT#


;EndPoint Interrupt 0
;Mode              = $%tTXCON0.3$ISO ENABLED$ISO DISABLED$
;Receive Done Interrupt  = $%tFIE.1$ENABLED$DISABLED$
;Transmit Done Interrupt = $%tFIE.0$ENABLED$DISABLED$
$$IFN$ IPL1.0 &! IPH1.0
;Priority          =  0
$$END$
$$IF$ IPL1.0 &! IPH1.0
;Priority          =  1
$$END$
$$IF$ IPH1.0 &! IPL1.0
;Priority          =  2
$$END$
$$IF$ IPH1.0 && IPL1.0
;Priority          =  3
$$END$

;EndPoint Interrupt 1
;Mode              = $%tTXCON1.3$ISO ENABLED$ISO DISABLED$
;Receive Done Interrupt  = $%tFIE.3$ENABLED$DISABLED$
;Transmit Done Interrupt = $%tFIE.2$ENABLED$DISABLED$
$$IFN$ IPL1.1 &! IPH1.1
;Priority          =  0
$$END$
$$IF$ IPL1.1 &! IPH1.1
;Priority          =  1
$$END$
$$IF$ IPH1.1 &! IPL1.1
;Priority          =  2
$$END$
$$IF$ IPH1.1 && IPL1.1
;Priority          =  3
$$END$

;EndPoint Interrupt 2
;Mode              = $%tTXCON2.3$ISO ENABLED$ISO DISABLED$
;Receive Done Interrupt  = $%tFIE.5$ENABLED$DISABLED$
;Transmit Done Interrupt = $%tFIE.4$ENABLED$DISABLED$
$$IFN$ IPL1.2 &! IPH1.2
;Priority          =  0
$$END$
$$IF$ IPL1.2 &! IPH1.2
;Priority          =  1
$$END$
$$IF$ IPH1.2 &! IPL1.2
;Priority          =  2
$$END$
$$IF$ IPH1.2 && IPL1.2
;Priority          =  3
$$END$

;EndPoint Interrupt 3
;Mode              = $%tTXCON3.3$ISO ENABLED$ISO DISABLED$
;Receive Done Interrupt  = $%tFIE.7$ENABLED$DISABLED$
;Transmit Done Interrupt = $%tFIE.6$ENABLED$DISABLED$
$$IFN$ IPL1.3 &! IPH1.3
;Priority          =  0
$$END$
$$IF$ IPL1.3 &! IPH1.3
;Priority          =  1
$$END$
$$IF$ IPH1.3 &! IPL1.3
;Priority          =  2
$$END$
$$IF$ IPH1.3 && IPL1.3
;Priority          =  3
$$END$


; --------------
; Initialization
; --------------
init_usb:
   mov   EPINDEX, #80h          ; initialize hubEP0
   mov   TXCON, #0$$HTXCON$h
   mov   RXCON, #0$$HRXCON$h
   mov   HSTAT, #0$$HSTAT$h
   mov   HIE, #0$$HFIE$h
   mov   EPCON, #0$$HEPCON$h

   mov   EPINDEX, #00h          ; initialize EP0
   mov   TXCON, #0$$TXCON0$h
   mov   RXCON, #0$$RXCON0$h
   mov   EPCON, #0$$EPCON0$h

   mov   EPINDEX, #01h          ; initialize EP1
   mov   TXCON, #0$$TXCON1$h
   mov   RXCON, #0$$RXCON1$h
   mov   EPCON, #0$$EPCON1$h

   mov   EPINDEX, #02h          ; initialize EP2
   mov   TXCON, #0$$TXCON2$h
   mov   RXCON, #0$$RXCON2$h
   mov   EPCON, #0$$EPCON2$h

   mov   EPINDEX, #03h          ; initialize EP3
   mov   TXCON, #0$$TXCON3$h
   mov   RXCON, #0$$RXCON3$h
   mov   EPCON, #0$$EPCON3$h

   mov   IPL1, #0$$IPL1$h       ;init priority registers
   mov   IPH1, #0$$IPH1$h
   mov   IPL0, #0$$IPL0$h
   mov   IPH0, #0$$IPH0$h
   mov   FIE, #0$$FIE$h
   mov   IEN1, #0$$IEN1$h       ;init interrupt registers
   mov   IEN0, #0$$IEN0$h
   mov   SOFH, #0$$SOFH$h

   ret

⌨️ 快捷键说明

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