Added beginnings of a new AVRISP-MKII clone project.

Added new Endpoint_SetEndpointDirection() macro to set the current endpoint direction for bidirectional endpoints.

Renamed internal USB_INT_ENDPOINT_SETUP macro to USB_INT_RXSTPI to fit in with the rest of the interrupt vector macros.
This commit is contained in:
Dean Camera 2009-08-17 12:38:24 +00:00
parent 09bedd6555
commit ecd82778cf
18 changed files with 2939 additions and 7 deletions

View file

@ -148,7 +148,7 @@ ISR(USB_GEN_vect, ISR_BLOCK)
ENDPOINT_BANK_SINGLE);
#if defined(INTERRUPT_CONTROL_ENDPOINT)
USB_INT_Enable(USB_INT_ENDPOINT_SETUP);
USB_INT_Enable(USB_INT_RXSTPI);
#endif
EVENT_USB_Device_Reset();
@ -236,7 +236,7 @@ ISR(USB_COM_vect, ISR_BLOCK)
USB_USBTask();
USB_INT_Clear(USB_INT_ENDPOINT_SETUP);
USB_INT_Clear(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(PrevSelectedEndpoint);
}

View file

@ -72,7 +72,7 @@
#define USB_INT_HSOFI UHIEN, (1 << HSOFE) , UHINT , (1 << HSOFI)
#define USB_INT_RSTI UHIEN , (1 << RSTE) , UHINT , (1 << RSTI)
#define USB_INT_SRPI OTGIEN, (1 << SRPE) , OTGINT, (1 << SRPI)
#define USB_INT_ENDPOINT_SETUP UEIENX, (1 << RXSTPE) , UEINTX, (1 << RXSTPI)
#define USB_INT_RXSTPI UEIENX, (1 << RXSTPE) , UEINTX, (1 << RXSTPI)
/* Function Prototypes: */
void USB_INT_ClearAllInterrupts(void);

View file

@ -331,6 +331,12 @@
* \return The currently selected endpoint's direction, as a ENDPOINT_DIR_* mask.
*/
static inline uint8_t Endpoint_GetEndpointDirection(void);
/** Sets the direction of the currently selected endpoint.
*
* \param DirectionMask New endpoint direction, as a ENDPOINT_DIR_* mask.
*/
static inline void Endpoint_SetEndpointDirection(uint8_t DirectionMask);
#else
#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)
#define Endpoint_BytesInEndpoint() UEBCX
@ -399,6 +405,8 @@
#define Endpoint_ResetDataToggle() MACROS{ UECONX |= (1 << RSTDT); }MACROE
#define Endpoint_GetEndpointDirection() (UECFG0X & ENDPOINT_DIR_IN)
#define Endpoint_SetEndpointDirection(dir) MACROS{ UECFG0X = ((UECFG0X & ~ENDPOINT_DIR_IN) | dir); }MACROE
#endif
/* Enums: */