Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
a36012fc
Commit
a36012fc
authored
Jul 15, 2011
by
Dean Camera
Browse files
Add option to the USB XMEGAs to set the USB bus interrupt priority level.
parent
f07e7667
Changes
2
Hide whitespace changes
Inline
Side-by-side
LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c
View file @
a36012fc
...
...
@@ -72,6 +72,13 @@ void USB_Init(
NVM
.
CMD
=
NVM_CMD_READ_CALIB_ROW_gc
;
USB
.
CAL1
=
pgm_read_byte
(
offsetof
(
NVM_PROD_SIGNATURES_t
,
USBCAL1
));
if
((
USB_Options
&
USB_OPT_BUSEVENT_PRIHIGH
)
==
USB_OPT_BUSEVENT_PRIHIGH
)
USB
.
INTCTRLA
=
(
3
<<
USB_INTLVL_gp
);
else
if
((
USB_Options
&
USB_OPT_BUSEVENT_PRIMED
)
==
USB_OPT_BUSEVENT_PRIMED
)
USB
.
INTCTRLA
=
(
2
<<
USB_INTLVL_gp
);
else
USB
.
INTCTRLA
=
(
1
<<
USB_INTLVL_gp
);
SetGlobalInterruptMask
(
CurrentGlobalInt
);
USB_ResetInterface
();
...
...
@@ -98,10 +105,6 @@ void USB_ResetInterface(void)
USB_INT_DisableAllInterrupts
();
USB_INT_ClearAllInterrupts
();
// TODO: Config define for priority
USB
.
INTCTRLA
=
(
2
<<
USB_INTLVL_gp
);
PMIC
.
CTRL
|=
(
1
<<
PMIC_MEDLVLEX_bp
);
USB_Controller_Reset
();
USB_Init_Device
();
}
...
...
LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h
View file @
a36012fc
...
...
@@ -84,7 +84,25 @@
#endif
/* Public Interface - May be used in end-application: */
/* Macros: */
/* Macros: */
/** \name USB Controller Option Masks */
//@{
/** Sets the USB bus interrupt priority level to be low priority. The USB bus interrupt is used for Start of Frame events, bus suspend
* and resume events, bus reset events and other events related to the management of the USB bus.
*/
#define USB_OPT_BUSEVENT_PRILOW ((0 << 1) | (0 << 1))
/** Sets the USB bus interrupt priority level to be medium priority. The USB bus interrupt is used for Start of Frame events, bus suspend
* and resume events, bus reset events and other events related to the management of the USB bus.
*/
#define USB_OPT_BUSEVENT_PRIMED ((0 << 1) | (1 << 1))
/** Sets the USB bus interrupt priority level to be high priority. The USB bus interrupt is used for Start of Frame events, bus suspend
* and resume events, bus reset events and other events related to the management of the USB bus.
*/
#define USB_OPT_BUSEVENT_PRIHIGH ((1 << 1) | (0 << 1))
//@}
/** \name Endpoint/Pipe Type Masks */
//@{
/** Mask for a CONTROL type endpoint or pipe.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment