#endif
#if !defined(CONTROL_ONLY_DEVICE) || defined(__DOXYGEN__)
- #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
- #define ENDPOINT_TOTAL_ENDPOINTS 7
- #else
+ #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)
/** Total number of endpoints (including the default control endpoint at address 0) which may
* be used in the device. Different USB AVR models support different amounts of endpoints,
* this value reflects the maximum number of endpoints for the currently selected AVR model.
*/
+ #define ENDPOINT_TOTAL_ENDPOINTS 7
+ #else
#define ENDPOINT_TOTAL_ENDPOINTS 5
#endif
#else
{
uint8_t Address; /**< Address of the pipe to configure, or zero if the table entry is to be unused. */
uint16_t Size; /**< Size of the pipe bank, in bytes. */
- uint8_t EndpointAddress; /** Address of the endpoint in the connected device. */
+ uint8_t EndpointAddress; /**< Address of the endpoint in the connected device. */
uint8_t Type; /**< Type of the endpoint, a \c EP_TYPE_* mask. */
uint8_t Banks; /**< Number of hardware banks to use for the pipe. */
} USB_Pipe_Table_t;
for (;;);
}
-/** Retrieves the associated interrupt handler for the interrupt group currently being fired. This
- * is called directly from the exception handler routine before dispatching to the ISR.
- */
InterruptHandlerPtr_t INTC_GetInterruptHandler(const uint_reg_t InterruptLevel)
{
return InterruptHandlers[AVR32_INTC.icr[AVR32_INTC_INT3 - InterruptLevel]];
}
-/** Initializes the interrupt controller ready to handle interrupts. This must be called at the
- * start of the user program before any interrupts are registered or enabled.
- */
void INTC_Init(void)
{
for (uint8_t InterruptGroup = 0; InterruptGroup < AVR32_INTC_NUM_INT_GRPS; InterruptGroup++)
#define INTC_IRQ_LINE(IRQIndex) (IRQIndex % 32)
/* Function Prototypes: */
+ /** Initializes the interrupt controller ready to handle interrupts. This must be called at the
+ * start of the user program before any interrupts are registered or enabled.
+ */
void INTC_Init(void);
+
+ /** Retrieves the associated interrupt handler for the interrupt group currently being fired. This
+ * is called directly from the exception handler routine before dispatching to the ISR.
+ *
+ * \param[in] InterruptLevel Priority level of the interrupt.
+ *
+ * \return Pointer to the associated interrupt handler function, or NULL if no handler set.
+ */
InterruptHandlerPtr_t INTC_GetInterruptHandler(const uint_reg_t InterruptLevel);
/* Inline Functions: */