📄 usbhal.h
字号:
#ifndef __USB_HAL
#define __USB_HAL
/*
#define DISABLE cli() // disable globel interrupt
#define ENABLE sei() // enable globel interrupt
#define D12_ACTIVATE PORTD |= _BV( PD3 )
#define D12_SUSPEND PORTD &= ~_BV( PD3 )
#define D12_DATA 0
#define D12_COMMAND 1
#define D12_RESET PORTD &= ~_BV( PD5 )
#define D12_RESUME PORTD |= _BV( PD5 )
#define EROOR 0
#define SUCCESS 1
#define F_CPU 8000000UL
*/
#define USB_NOLAZYCLOCK 0x02
#define USB_CLOCKRUNNING 0x04
#define USB_INTERRUPTMODE 0x08
#define USB_SOFTCONNECT 0x10
#define USB_ENDP_NONISO 0x00
#define USB_ENDP_ISOOUT 0x40
#define USB_ENDP_ISOIN 0x80
#define USB_ENDP_ISOIO 0xC0
#define USB_CLOCK_12M 0x03
#define USB_CLOCK_4M 0x0b
#define USB_SETTOONE 0x40
#define USB_SOFONLY 0x80
#define USB_DMASINGLE 0x00
#define USB_BURST_4 0x01
#define USB_BURST_8 0x02
#define USB_BURST_16 0x03
#define USB_DMAENABLE 0x04
#define USB_DMA_INTOKEN 0x08
#define USB_AUTOLOAD 0x10
#define USB_NORMALPLUSSOF 0x20
#define USB_ENDP4INTENABLE 0x40
#define USB_ENDP5INTENABLE 0x80 // bug fixed in V2.1
#define __USB_INT_ENDP0OUT 0x01
#define __USB_INT_ENDP0IN 0x02
#define __USB_INT_ENDP1OUT 0x04
#define __USB_INT_ENDP1IN 0x08
#define __USB_INT_ENDP2OUT 0x10
#define __USB_INT_ENDP2IN 0x20
#define __USB_INT_BUSRESET 0x40
#define __USB_INT_SUSPENDCHANGE 0x80
#define __USB_INT_EOT 0x0100
#define USB_SETUPPACKET 0x20
#define USB_BUFFER0FULL 0x20
#define USB_BUFFER1FULL 0x40
#define USB_FULLEMPTY 0x01
#define USB_STALL 0x02
#define USB_DATA 0
#define USB_COMMAND 1
void USB_SetAddressEnable(unsigned char bAddress, unsigned char bEnable);
void USB_SetEndpointEnable(unsigned char bEnable);
void USB_SetMode(unsigned char bConfig, unsigned char bClkDiv);
void USB_SetDMA(unsigned char bMode);
unsigned char USB_GetDMA(void);
unsigned short USB_ReadInterruptRegister(void);
unsigned char USB_SelectEndpoint(unsigned char bEndp);
unsigned char USB_ReadLastTransactionStatus(unsigned char bEndp);
unsigned char USB_ReadEndpointStatus(unsigned char bEndp);
void USB_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled);
void USB_SendResume(void);
unsigned short USB_ReadCurrentFrameNumber(void);
unsigned short USB_ReadChipID(void);
unsigned char USB_ReadEndpoint( unsigned char endp, unsigned char len, unsigned char* buf );
unsigned char USB_WriteEndpoint( unsigned char endp, unsigned char len, unsigned char* buf );
void USB_AcknowledgeEndpoint(unsigned char endp);
unsigned char USB_ReadMainEndpoint(unsigned char * buf); // V2.2
void USB_Ep0Stall(void);
void USB_Write(unsigned char command, unsigned char val);
unsigned char USB_Read(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -