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

📄 usb_regs.h

📁 STR912的usb例程
💻 H
📖 第 1 页 / 共 2 页
字号:
/* SetEPType */
void SetEPType(BYTE /*bEpNum*/,WORD /*wType*/);
#define _SetEPType(bEpNum,wType)	(_SetENDPOINT(bEpNum,\
						((_GetENDPOINT(bEpNum) & EP_T_MASK) | wType)))
/*----------------------------------------------------------------------------*/
/* GetEPType */
WORD GetEPType(BYTE /*bEpNum*/);
#define _GetEPType(bEpNum) (_GetENDPOINT(bEpNum) & EP_T_FIELD)
/*----------------------------------------------------------------------------*/
/* SetEPTxStatus */
void SetEPTxStatus(BYTE /*bEpNum*/,WORD /*wState*/);
#define _SetEPTxStatus(bEpNum,wState) {\
 register WORD _wRegVal; \
 _wRegVal = _GetENDPOINT(bEpNum) & EPTX_DTOGMASK; \
 /* toggle first bit ? */		   \
 if((EPTX_DTOG1 & wState)!= 0) \
 _wRegVal ^= EPTX_DTOG1;    	 \
 /* toggle second bit ?  */ 	 \
 if((EPTX_DTOG2 & wState)!= 0) \
 _wRegVal ^= EPTX_DTOG2; \
 _SetENDPOINT(bEpNum, _wRegVal); \
} /* _SetEPTxStatus */
/*----------------------------------------------------------------------------*/
/* SetEPRxStatus */
void SetEPRxStatus(BYTE /*bEpNum*/,WORD /*wState*/);
#define _SetEPRxStatus(bEpNum,wState) {\
 register WORD _wRegVal;			\
 _wRegVal = _GetENDPOINT(bEpNum) & EPRX_DTOGMASK;\
 /* toggle first bit ?	*/		\
 if((EPRX_DTOG1 & wState)!= 0)	\
 _wRegVal ^= EPRX_DTOG1;		\
 /* toggle second bit ?	*/		\
 if((EPRX_DTOG2 & wState)!= 0)	\
 _wRegVal ^= EPRX_DTOG2;		\
 _SetENDPOINT(bEpNum, _wRegVal);	\
} /* _SetEPRxStatus */
/*----------------------------------------------------------------------------*/
/* GetEPTxStatus / GetEPRxStatus */
WORD GetEPTxStatus(BYTE /*bEpNum*/);
WORD GetEPRxStatus(BYTE /*bEpNum*/);
#define _GetEPTxStatus(bEpNum) ((WORD)_GetENDPOINT(bEpNum) & EPTX_STAT)
#define _GetEPRxStatus(bEpNum) ((WORD)_GetENDPOINT(bEpNum) & EPRX_STAT)
/*----------------------------------------------------------------------------*/
/* SetEPTxValid / SetEPRxValid */
void SetEPTxValid(BYTE /*bEpNum*/);
void SetEPRxValid(BYTE /*bEpNum*/);
#define _SetEPTxValid(bEpNum)     (_SetEPTxStatus(bEpNum, EP_TX_VALID))
#define _SetEPRxValid(bEpNum)     (_SetEPRxStatus(bEpNum, EP_RX_VALID))
/*----------------------------------------------------------------------------*/
/* GetTxStallStatus / GetRxStallStatus */
BOOL GetTxStallStatus(BYTE /*bEpNum*/);
BOOL GetRxStallStatus(BYTE /*bEpNum*/);
#define _GetTxStallStatus(bEpNum) (_GetEPTxStatus(bEpNum) \
													 == EP_TX_STALL)
#define _GetRxStallStatus(bEpNum) (_GetEPRxStatus(bEpNum) \
													 == EP_RX_STALL)
/*----------------------------------------------------------------------------*/
/* SetEP_KIND / ClearEP_KIND */
void SetEP_KIND(BYTE /*bEpNum*/);
void ClearEP_KIND(BYTE /*bEpNum*/);
#define _SetEP_KIND(bEpNum)	   (_SetENDPOINT(bEpNum, \
					    (_GetENDPOINT(bEpNum) | EP_KIND) & EPREG_MASK))
#define _ClearEP_KIND(bEpNum)  (_SetENDPOINT(bEpNum, \
						         (_GetENDPOINT(bEpNum) & EPKIND_MASK)))
/*----------------------------------------------------------------------------*/
/* Set_Status_Out / Clear_Status_Out */
void Set_Status_Out(BYTE /*bEpNum*/);
void Clear_Status_Out(BYTE /*bEpNum*/);
#define _Set_Status_Out(bEpNum)	   _SetEP_KIND(bEpNum)
#define _Clear_Status_Out(bEpNum)  _ClearEP_KIND(bEpNum)
/*----------------------------------------------------------------------------*/
/* SetEPDoubleBuff / ClearEPDoubleBuff */
void SetEPDoubleBuff(BYTE /*bEpNum*/);
void ClearEPDoubleBuff(BYTE /*bEpNum*/);
#define _SetEPDoubleBuff(bEpNum)   _SetEP_KIND(bEpNum)
#define _ClearEPDoubleBuff(bEpNum) _ClearEP_KIND(bEpNum)
/*----------------------------------------------------------------------------*/
/* ClearEP_CTR_RX / ClearEP_CTR_TX */
void ClearEP_CTR_RX(BYTE /*bEpNum*/);
void ClearEP_CTR_TX(BYTE /*bEpNum*/);
#define _ClearEP_CTR_RX(bEpNum)   (_SetENDPOINT(bEpNum,\
						   _GetENDPOINT(bEpNum) & 0x7FFF & EPREG_MASK))
#define _ClearEP_CTR_TX(bEpNum)   (_SetENDPOINT(bEpNum,\
						   _GetENDPOINT(bEpNum) & 0xFF7F & EPREG_MASK))
/*----------------------------------------------------------------------------*/
/* ToggleDTOG_RX / ToggleDTOG_TX */
void ToggleDTOG_RX(BYTE /*bEpNum*/);
void ToggleDTOG_TX(BYTE /*bEpNum*/);
#define _ToggleDTOG_RX(bEpNum)    (_SetENDPOINT(bEpNum, \
					   EP_DTOG_RX | _GetENDPOINT(bEpNum) & EPREG_MASK))
#define _ToggleDTOG_TX(bEpNum)    (_SetENDPOINT(bEpNum, \
					   EP_DTOG_TX | _GetENDPOINT(bEpNum) & EPREG_MASK))
/*----------------------------------------------------------------------------*/
/* ClearDTOG_RX / ClearDTOG_TX */
void ClearDTOG_RX(BYTE /*bEpNum*/);
void ClearDTOG_TX(BYTE /*bEpNum*/);
#define _ClearDTOG_RX(bEpNum)  if((_GetENDPOINT(bEpNum) & EP_DTOG_RX) != 0)\
			 							_ToggleDTOG_RX(bEpNum)
#define _ClearDTOG_TX(bEpNum)  if((_GetENDPOINT(bEpNum) & EP_DTOG_TX) != 0)\
			 							_ToggleDTOG_TX(bEpNum)
/*----------------------------------------------------------------------------*/			 							
/* SetEPAddress */
void SetEPAddress(BYTE /*bEpNum*/,BYTE /*bAddr*/);
#define _SetEPAddress(bEpNum,bAddr) _SetENDPOINT(bEpNum,\
						_GetENDPOINT(bEpNum) & EPREG_MASK | bAddr)
/*----------------------------------------------------------------------------*/
/* GetEPAddress */
BYTE GetEPAddress(BYTE /*bEpNum*/);
#define _GetEPAddress(bEpNum) ((BYTE)(_GetENDPOINT(bEpNum) & EPADDR_FIELD))
/*----------------------------------------------------------------------------*/
/* SetEPTxAddr / SetEPRxAddr*/
void SetEPTxAddr(BYTE /*bEpNum*/,WORD /*wAddr*/);
#define _SetEPTxAddr(bEpNum , wAddr) {\
 *_pEPBufAddr(bEpNum) &=0xFFFF0000; \
 *_pEPBufAddr(bEpNum) |=((wAddr)&0x0FFFC);\
 }
void SetEPRxAddr(BYTE /*bEpNum*/,WORD /*wAddr*/);
#define _SetEPRxAddr(bEpNum, wAddr) {\
 *_pEPBufAddr(bEpNum) &=0x0000FFFF;\
 *_pEPBufAddr(bEpNum) |=((wAddr<<16)&0xFFFC0000);\
}
/*----------------------------------------------------------------------------*/
/* GetEPTxAddr / GetEPRxAddr */
WORD GetEPTxAddr(BYTE /*bEpNum*/);
#define _GetEPTxAddr(bEpNum) ((WORD)(*_pEPBufAddr(bEpNum) &0x0000FFFF))
WORD GetEPRxAddr(BYTE /*bEpNum*/);
#define _GetEPRxAddr(bEpNum) ((WORD)((*_pEPBufAddr(bEpNum)&0xFFFF0000)>>16))
/*----------------------------------------------------------------------------*/
/* SetEPTxCount / SetEPRxCount */
void SetEPTxCount(BYTE /*bEpNum*/,WORD /*wCount*/);
#define _SetEPTxCount(bEpNum,wCount) {\
 *_pEPBufCount(bEpNum) &=0xFFFFFC00;\
 *_pEPBufCount(bEpNum) |=wCount;\
}
/*----------------------------------------------------------------------------*/
void SetEPRxCount(BYTE /*bEpNum*/,WORD /*wCount*/);
#define _SetEPRxCount(bEpNum,wCount) {\
DWORD BLsize=0;\
DWORD Blocks;\
if (wCount < 64) Blocks = wCount>>1;\
else\
{\
  BLsize = 0x80000000;\
  Blocks = wCount>>6;\
}\
*_pEPBufCount(bEpNum) &=~0x80000000;\
*_pEPBufCount(bEpNum) |=BLsize;\
*_pEPBufCount(bEpNum)  &=0x83FFFFFF;\
*_pEPBufCount(bEpNum) |=Blocks<<26;\
*_pEPBufCount(bEpNum) &=0xFC00FFFF;\
}

/*----------------------------------------------------------------------------*/
/* GetEPTxCount / GetEPRxCount */
WORD GetEPTxCount(BYTE /*bEpNum*/);
#define _GetEPTxCount(bEpNum) (WORD)(*_pEPBufCount(bEpNum)&0x3FF)
WORD GetEPRxCount(BYTE /*bEpNum*/);
#define _GetEPRxCount(bEpNum) (WORD)((*_pEPBufCount(bEpNum)&0x3FF0000)>>16)
/*----------------------------------------------------------------------------*/
/* SetEPDblBuf0Addr / SetEPDblBuf1Addr */
void SetEPDblBuf0Addr(BYTE /*bEpNum*/,WORD /*wBuf0Addr*/);
void SetEPDblBuf1Addr(BYTE /*bEpNum*/,WORD /*wBuf1Addr*/);
#define _SetEPDblBuf0Addr(bEpNum,wBuf0Addr) {_SetEPTxAddr(bEpNum, wBuf0Addr);}
#define _SetEPDblBuf1Addr(bEpNum,wBuf1Addr) {_SetEPRxAddr(bEpNum, wBuf1Addr);}
/*----------------------------------------------------------------------------*/
/* SetEPDblBuffAddr */
void SetEPDblBuffAddr(BYTE /*bEpNum*/,WORD /*wBuf0Addr*/,WORD /*wBuf1Addr*/);
#define _SetEPDblBuffAddr(bEpNum,wBuf0Addr,wBuf1Addr) { 		\
					_SetEPDblBuf0Addr(bEpNum, wBuf0Addr);	\
					_SetEPDblBuf1Addr(bEpNum, wBuf1Addr);	\
} /* _SetEPDblBuffAddr */
/*----------------------------------------------------------------------------*/
/* GetEPDblBuf0Addr / GetEPDblBuf1Addr */
WORD GetEPDblBuf0Addr(BYTE /*bEpNum*/);
WORD GetEPDblBuf1Addr(BYTE /*bEpNum*/);
#define _GetEPDblBuf0Addr(bEpNum) (_GetEPTxAddr(bEpNum))
#define _GetEPDblBuf1Addr(bEpNum) (_GetEPRxAddr(bEpNum))
/*----------------------------------------------------------------------------*/
/* SetEPDblBuffCount / SetEPDblBuf0Count / SetEPDblBuf1Count */
void SetEPDblBuffCount(BYTE /*bEpNum*/, BYTE /*bDir*/, WORD /*wCount*/);
void SetEPDblBuf0Count(BYTE /*bEpNum*/, BYTE /*bDir*/, WORD /*wCount*/);
void SetEPDblBuf1Count(BYTE /*bEpNum*/, BYTE /*bDir*/, WORD /*wCount*/);

/*----------------------------------------------------------------------------*/
/* GetEPDblBuf0Count / GetEPDblBuf1Count */
WORD GetEPDblBuf0Count(BYTE /*bEpNum*/);
WORD GetEPDblBuf1Count(BYTE /*bEpNum*/);
#define _GetEPDblBuf0Count(bEpNum) (GetEPTxCount(bEpNum))
#define _GetEPDblBuf1Count(bEpNum) (GetEPRxCount(bEpNum))
/*----------------------------------------------------------------------------*/
/* FreeUserBuffer */
void FreeUserBuffer(BYTE /*bEpNum*/,BYTE Dir);
/*----------------------------------------------------------------------------*/
/* ToWord */
WORD ToWord(BYTE,BYTE);
/*----------------------------------------------------------------------------*/
/* ByteSwap */
WORD ByteSwap(WORD);
/*----------------------------------------------------------------------------*/

/* DMA Functions */
void SetDMABurstTxSize(BYTE /*DestBsize*/);
void SetDMABurstRxSize(BYTE /*SrcBsize*/);
void DMAUnlinkedModeTxConfig(BYTE /*bEpNum*/ ,BYTE /*index*/);
void DMAUnlinkedModeTxEnable(BYTE /*index*/);
void DMAUnlinkedModeTxDisable(BYTE /*index*/);
void DMAUnlinkedModeRxEnable(BYTE /*bEpNum*/);
void DMAUnlinkedModeRxDisable(BYTE /*bEpNum*/);
void DMALinkedModeRxConfig(BYTE /*bEpNum*/);
void DMALinkedModeTxConfig(BYTE /*bEpNum*/);
void DMALinkedModeRxEnable(void);
void DMALinkedModeTxEnable(void);
void DMALinkedModeRxDisable(void);
void DMALinkedModeTxDisable(void);
void DMASynchEnable(void);
void DMASynchDisable(void);
void SetDMALLITxLength(BYTE /*length*/);
void SetDMALLIRxLength(BYTE /*length*/ );
void SetDMALLIRxPacketNum(BYTE /*PacketNum*/);
BYTE GetDMALLIRxPacketNum(void);

⌨️ 快捷键说明

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