diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2010-04-28 07:48:26 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2010-04-28 07:48:26 +0000 |
commit | 59c4871f8011247a056f6ca2ca8aca89000e3841 (patch) | |
tree | b26bb76882e9cca644ba0083bcc1c9ea50511463 | |
parent | 85aaaf84ce14568580a35c31e22062ba529b49fe (diff) | |
download | lufa-59c4871f8011247a056f6ca2ca8aca89000e3841.tar.gz lufa-59c4871f8011247a056f6ca2ca8aca89000e3841.tar.bz2 lufa-59c4871f8011247a056f6ca2ca8aca89000e3841.zip |
USB_Init() no longer calls sei() to enable global interrupts - this must now be done in the user application once all init code has run.
135 files changed, 181 insertions, 61 deletions
diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c index 482859bda..83fd0ee92 100644 --- a/Bootloaders/CDC/BootloaderCDC.c +++ b/Bootloaders/CDC/BootloaderCDC.c @@ -69,6 +69,9 @@ int main(void) /* Setup hardware required for the bootloader */
SetupHardware();
+ /* Enable global interrupts so that the USB stack can function */
+ sei();
+
while (RunBootloader)
{
CDC_Task();
diff --git a/Bootloaders/CDC/BootloaderCDC.h b/Bootloaders/CDC/BootloaderCDC.h index 836700279..22b57438d 100644 --- a/Bootloaders/CDC/BootloaderCDC.h +++ b/Bootloaders/CDC/BootloaderCDC.h @@ -42,6 +42,7 @@ #include <avr/boot.h>
#include <avr/eeprom.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include "Descriptors.h"
diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c index 157b78ffb..d90accb6c 100644 --- a/Bootloaders/DFU/BootloaderDFU.c +++ b/Bootloaders/DFU/BootloaderDFU.c @@ -101,6 +101,9 @@ int main(void) {
/* Configure hardware required by the bootloader */
SetupHardware();
+
+ /* Enable global interrupts so that the USB stack can function */
+ sei();
/* Run the USB management task while the bootloader is supposed to be running */
while (RunBootloader || WaitForExit)
diff --git a/Bootloaders/DFU/BootloaderDFU.h b/Bootloaders/DFU/BootloaderDFU.h index ca53266bf..4583d6ce1 100644 --- a/Bootloaders/DFU/BootloaderDFU.h +++ b/Bootloaders/DFU/BootloaderDFU.h @@ -43,6 +43,7 @@ #include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include "Descriptors.h"
diff --git a/Bootloaders/Incomplete/MIDI/BootloaderMIDI.c b/Bootloaders/Incomplete/MIDI/BootloaderMIDI.c index 8d26d56a0..863820157 100644 --- a/Bootloaders/Incomplete/MIDI/BootloaderMIDI.c +++ b/Bootloaders/Incomplete/MIDI/BootloaderMIDI.c @@ -42,8 +42,6 @@ int main(void)
{
SetupHardware();
-
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
for (;;)
{
@@ -63,48 +61,22 @@ void SetupHardware(void) clock_prescale_set(clock_div_1);
/* Hardware Initialization */
- LEDs_Init();
USB_Init();
}
-/** Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs. */
-void EVENT_USB_Device_Connect(void)
-{
- /* Indicate USB enumerating */
- LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-}
-
-/** Event handler for the USB_Disconnect event. This indicates that the device is no longer connected to a host via
- * the status LEDs, disables the sample update and PWM output timers and stops the USB and MIDI management tasks.
- */
-void EVENT_USB_Device_Disconnect(void)
-{
- /* Indicate USB not ready */
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
-
/** Event handler for the USB_ConfigurationChanged event. This is fired when the host set the current configuration
* of the USB device after enumeration - the device endpoints are configured and the MIDI management task started.
*/
void EVENT_USB_Device_ConfigurationChanged(void)
{
- /* Indicate USB connected and ready */
- LEDs_SetAllLEDs(LEDMASK_USB_READY);
-
/* Setup MIDI stream endpoints */
- if (!(Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPNUM, EP_TYPE_BULK,
- ENDPOINT_DIR_OUT, MIDI_STREAM_EPSIZE,
- ENDPOINT_BANK_SINGLE)))
- {
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- }
+ Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPNUM, EP_TYPE_BULK,
+ ENDPOINT_DIR_OUT, MIDI_STREAM_EPSIZE,
+ ENDPOINT_BANK_SINGLE);
- if (!(Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPNUM, EP_TYPE_BULK,
- ENDPOINT_DIR_IN, MIDI_STREAM_EPSIZE,
- ENDPOINT_BANK_SINGLE)))
- {
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- }
+ Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPNUM, EP_TYPE_BULK,
+ ENDPOINT_DIR_IN, MIDI_STREAM_EPSIZE,
+ ENDPOINT_BANK_SINGLE);
}
/** Task to handle the generation of MIDI note change events in response to presses of the board joystick, and send them
@@ -122,9 +94,7 @@ void MIDI_Task(void) if (Endpoint_IsOUTReceived())
{
USB_MIDI_EventPacket_t InPacket;
- Endpoint_Read_Stream_LE(&InPacket, sizeof(InPacket));
-
- LEDs_SetAllLEDs(InPacket.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);
+ Endpoint_Read_Stream_LE(&InPacket, sizeof(InPacket));
Endpoint_ClearOUT();
uint8_t Channel = InPacket.Data1;
diff --git a/Bootloaders/Incomplete/MIDI/BootloaderMIDI.h b/Bootloaders/Incomplete/MIDI/BootloaderMIDI.h index 5af684da4..b5688195b 100644 --- a/Bootloaders/Incomplete/MIDI/BootloaderMIDI.h +++ b/Bootloaders/Incomplete/MIDI/BootloaderMIDI.h @@ -41,12 +41,12 @@ #include <avr/wdt.h>
#include <avr/boot.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include "Descriptors.h"
#include <LUFA/Version.h>
- #include <LUFA/Drivers/Board/LEDs.h>
#include <LUFA/Drivers/USB/USB.h>
/* Macros: */
diff --git a/Bootloaders/TeensyHID/TeensyHID.c b/Bootloaders/TeensyHID/TeensyHID.c index 2317ea4e5..5431a5700 100644 --- a/Bootloaders/TeensyHID/TeensyHID.c +++ b/Bootloaders/TeensyHID/TeensyHID.c @@ -49,6 +49,9 @@ int main(void) /* Setup hardware required for the bootloader */
SetupHardware();
+ /* Enable global interrupts so that the USB stack can function */
+ sei();
+
while (RunBootloader)
USB_USBTask();
diff --git a/Bootloaders/TeensyHID/TeensyHID.h b/Bootloaders/TeensyHID/TeensyHID.h index 639389870..7e3d72dcf 100644 --- a/Bootloaders/TeensyHID/TeensyHID.h +++ b/Bootloaders/TeensyHID/TeensyHID.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/boot.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/AudioInput/AudioInput.c b/Demos/Device/ClassDriver/AudioInput/AudioInput.c index 22d0173a9..09a2f0f01 100644 --- a/Demos/Device/ClassDriver/AudioInput/AudioInput.c +++ b/Demos/Device/ClassDriver/AudioInput/AudioInput.c @@ -59,6 +59,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/AudioInput/AudioInput.h b/Demos/Device/ClassDriver/AudioInput/AudioInput.h index 98fec7813..dc3475e69 100644 --- a/Demos/Device/ClassDriver/AudioInput/AudioInput.h +++ b/Demos/Device/ClassDriver/AudioInput/AudioInput.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <LUFA/Version.h>
#include <LUFA/Drivers/Board/LEDs.h>
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c index be3eb42c9..0dda68c37 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c @@ -59,6 +59,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h index e8bd76914..cf0034f87 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdlib.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c index dd64c2851..ba3b86f12 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c +++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.c @@ -94,6 +94,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h index a7ce35df7..1c99cfde8 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h +++ b/Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.c b/Demos/Device/ClassDriver/GenericHID/GenericHID.c index 3516f0857..285a197b7 100644 --- a/Demos/Device/ClassDriver/GenericHID/GenericHID.c +++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.c @@ -74,6 +74,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/GenericHID/GenericHID.h b/Demos/Device/ClassDriver/GenericHID/GenericHID.h index 423e28f43..595bd0ea0 100644 --- a/Demos/Device/ClassDriver/GenericHID/GenericHID.h +++ b/Demos/Device/ClassDriver/GenericHID/GenericHID.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/Joystick/Joystick.c b/Demos/Device/ClassDriver/Joystick/Joystick.c index 518c86e8f..6a259d7c3 100644 --- a/Demos/Device/ClassDriver/Joystick/Joystick.c +++ b/Demos/Device/ClassDriver/Joystick/Joystick.c @@ -66,6 +66,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/Joystick/Joystick.h b/Demos/Device/ClassDriver/Joystick/Joystick.h index 7932ab5c2..9f666fe72 100644 --- a/Demos/Device/ClassDriver/Joystick/Joystick.h +++ b/Demos/Device/ClassDriver/Joystick/Joystick.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/Keyboard/Keyboard.c b/Demos/Device/ClassDriver/Keyboard/Keyboard.c index ea4fbf819..0da529543 100644 --- a/Demos/Device/ClassDriver/Keyboard/Keyboard.c +++ b/Demos/Device/ClassDriver/Keyboard/Keyboard.c @@ -66,6 +66,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/Keyboard/Keyboard.h b/Demos/Device/ClassDriver/Keyboard/Keyboard.h index 945c7e894..2c86bf5a2 100644 --- a/Demos/Device/ClassDriver/Keyboard/Keyboard.h +++ b/Demos/Device/ClassDriver/Keyboard/Keyboard.h @@ -40,8 +40,8 @@ /* Includes: */
#include <avr/io.h>
#include <avr/wdt.h>
- #include <avr/interrupt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c index 1f87a7a6b..94f27bd1b 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c +++ b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c @@ -89,6 +89,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.h b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.h index ca4cfecd8..4c540ccb0 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.h +++ b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.h @@ -36,6 +36,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c index 5c0f25e64..7fcdfcc5f 100644 --- a/Demos/Device/ClassDriver/MIDI/MIDI.c +++ b/Demos/Device/ClassDriver/MIDI/MIDI.c @@ -64,6 +64,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.h b/Demos/Device/ClassDriver/MIDI/MIDI.h index c8cb4268d..96e2b40d8 100644 --- a/Demos/Device/ClassDriver/MIDI/MIDI.h +++ b/Demos/Device/ClassDriver/MIDI/MIDI.h @@ -40,7 +40,9 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
+ #include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/MassStorage/MassStorage.c b/Demos/Device/ClassDriver/MassStorage/MassStorage.c index ce8e04bc9..c58dff95f 100644 --- a/Demos/Device/ClassDriver/MassStorage/MassStorage.c +++ b/Demos/Device/ClassDriver/MassStorage/MassStorage.c @@ -66,6 +66,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/MassStorage/MassStorage.h b/Demos/Device/ClassDriver/MassStorage/MassStorage.h index 2c7fa7d7f..64da5b3bc 100644 --- a/Demos/Device/ClassDriver/MassStorage/MassStorage.h +++ b/Demos/Device/ClassDriver/MassStorage/MassStorage.h @@ -40,6 +40,8 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
+ #include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c index 828699af5..9b4efb679 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.c @@ -89,6 +89,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.h b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.h index deeb6e048..65600eef1 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.h +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.h @@ -42,6 +42,7 @@ #include <avr/wdt.h>
#include <avr/power.h>
#include <avr/interrupt.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/ClassDriver/Mouse/Mouse.c b/Demos/Device/ClassDriver/Mouse/Mouse.c index 48348c774..96af14558 100644 --- a/Demos/Device/ClassDriver/Mouse/Mouse.c +++ b/Demos/Device/ClassDriver/Mouse/Mouse.c @@ -66,6 +66,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/Mouse/Mouse.h b/Demos/Device/ClassDriver/Mouse/Mouse.h index 79d56aa50..818d54069 100644 --- a/Demos/Device/ClassDriver/Mouse/Mouse.h +++ b/Demos/Device/ClassDriver/Mouse/Mouse.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/interrupt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.h b/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.h index a3b92fa5b..2dfc60868 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.h +++ b/Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.h @@ -38,6 +38,8 @@ /* Includes: */
#include <avr/io.h>
+ #include <avr/pgmspace.h>
+ #include <stdio.h>
#include <LUFA/Drivers/USB/Class/RNDIS.h>
#include <LUFA/Drivers/Peripheral/SerialStream.h>
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c index dbdbb8ab8..14016aa64 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c +++ b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.c @@ -70,12 +70,11 @@ int main(void) {
SetupHardware();
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-
TCP_Init();
Webserver_Init();
- printf_P(PSTR("\r\n\r\n****** RNDIS Demo running. ******\r\n"));
+ LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h index 3bed7f851..c6c092ccc 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h +++ b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h @@ -39,10 +39,9 @@ /* Includes: */
#include <avr/io.h>
#include <avr/wdt.h>
- #include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
- #include <stdio.h>
#include "Descriptors.h"
diff --git a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c index 30cbc6695..1a8d6ede8 100644 --- a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c +++ b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.c @@ -76,6 +76,7 @@ int main(void) CDC_Device_CreateStream(&VirtualSerial_CDC_Interface, &USBSerialStream);
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.h b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.h index 96d83800b..0edac545b 100644 --- a/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.h +++ b/Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include <stdio.h>
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c index e7c899b79..c55d6d001 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c @@ -90,6 +90,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.h b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.h index c0e6e7903..3d6d3a7e3 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.h +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/Incomplete/Sideshow/Sideshow.c b/Demos/Device/Incomplete/Sideshow/Sideshow.c index 6c48c34e3..5f70b34c6 100644 --- a/Demos/Device/Incomplete/Sideshow/Sideshow.c +++ b/Demos/Device/Incomplete/Sideshow/Sideshow.c @@ -58,6 +58,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/Incomplete/Sideshow/Sideshow.h b/Demos/Device/Incomplete/Sideshow/Sideshow.h index a75d3d9bc..871e47706 100644 --- a/Demos/Device/Incomplete/Sideshow/Sideshow.h +++ b/Demos/Device/Incomplete/Sideshow/Sideshow.h @@ -35,6 +35,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include "Descriptors.h"
#include "Lib/SideshowCommands.h"
diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.c b/Demos/Device/LowLevel/AudioInput/AudioInput.c index 392609b07..aa8967cd0 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.c +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.c @@ -47,6 +47,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.h b/Demos/Device/LowLevel/AudioInput/AudioInput.h index 4585ab5b6..6902dc8f0 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.h +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c index 5dcb5c576..8cd6be17b 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c @@ -47,6 +47,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.h b/Demos/Device/LowLevel/AudioOutput/AudioOutput.h index 3812ae0fd..69b59b8fa 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.h +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.h @@ -40,7 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
- #include <stdlib.h>
+ #include <avr/interrupt.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c index 9be089b2b..5c90c6ab8 100644 --- a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c +++ b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.c @@ -69,6 +69,9 @@ CDC_Line_Coding_t LineEncoding2 = { .BaudRateBPS = 0, int main(void)
{
SetupHardware();
+
+ LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.h b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.h index a4c8f97ca..6ca8b72a6 100644 --- a/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.h +++ b/Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/GenericHID/GenericHID.c b/Demos/Device/LowLevel/GenericHID/GenericHID.c index 4d3f4c1ba..9d9012aff 100644 --- a/Demos/Device/LowLevel/GenericHID/GenericHID.c +++ b/Demos/Device/LowLevel/GenericHID/GenericHID.c @@ -48,6 +48,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/GenericHID/GenericHID.h b/Demos/Device/LowLevel/GenericHID/GenericHID.h index c79ed6f44..deaee336c 100644 --- a/Demos/Device/LowLevel/GenericHID/GenericHID.h +++ b/Demos/Device/LowLevel/GenericHID/GenericHID.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/LowLevel/Joystick/Joystick.c b/Demos/Device/LowLevel/Joystick/Joystick.c index 0edead5c8..e84eef042 100644 --- a/Demos/Device/LowLevel/Joystick/Joystick.c +++ b/Demos/Device/LowLevel/Joystick/Joystick.c @@ -44,6 +44,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/Joystick/Joystick.h b/Demos/Device/LowLevel/Joystick/Joystick.h index 811cb4e42..761582d45 100644 --- a/Demos/Device/LowLevel/Joystick/Joystick.h +++ b/Demos/Device/LowLevel/Joystick/Joystick.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.c b/Demos/Device/LowLevel/Keyboard/Keyboard.c index fd7e63e2b..67715843b 100644 --- a/Demos/Device/LowLevel/Keyboard/Keyboard.c +++ b/Demos/Device/LowLevel/Keyboard/Keyboard.c @@ -62,6 +62,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.h b/Demos/Device/LowLevel/Keyboard/Keyboard.h index 4cb3616c7..f41f6d4c3 100644 --- a/Demos/Device/LowLevel/Keyboard/Keyboard.h +++ b/Demos/Device/LowLevel/Keyboard/Keyboard.h @@ -41,6 +41,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c index e41b7090b..ddcd3ce8e 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c +++ b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.c @@ -52,6 +52,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h index 7fcec978b..993b326a2 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h +++ b/Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h @@ -36,6 +36,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c index edfc56f48..03536b2c5 100644 --- a/Demos/Device/LowLevel/MIDI/MIDI.c +++ b/Demos/Device/LowLevel/MIDI/MIDI.c @@ -44,7 +44,8 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-
+ sei();
+
for (;;)
{
MIDI_Task();
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.h b/Demos/Device/LowLevel/MIDI/MIDI.h index 82e42da0d..a49752729 100644 --- a/Demos/Device/LowLevel/MIDI/MIDI.h +++ b/Demos/Device/LowLevel/MIDI/MIDI.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/MassStorage/MassStorage.c b/Demos/Device/LowLevel/MassStorage/MassStorage.c index fc9a97de4..1ed84d326 100644 --- a/Demos/Device/LowLevel/MassStorage/MassStorage.c +++ b/Demos/Device/LowLevel/MassStorage/MassStorage.c @@ -55,6 +55,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/MassStorage/MassStorage.h b/Demos/Device/LowLevel/MassStorage/MassStorage.h index 44302084c..27d1e3b00 100644 --- a/Demos/Device/LowLevel/MassStorage/MassStorage.h +++ b/Demos/Device/LowLevel/MassStorage/MassStorage.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/Mouse/Mouse.c b/Demos/Device/LowLevel/Mouse/Mouse.c index 70ed82cc8..3fce52210 100644 --- a/Demos/Device/LowLevel/Mouse/Mouse.c +++ b/Demos/Device/LowLevel/Mouse/Mouse.c @@ -61,6 +61,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/Mouse/Mouse.h b/Demos/Device/LowLevel/Mouse/Mouse.h index 884482b3d..6a1a518fb 100644 --- a/Demos/Device/LowLevel/Mouse/Mouse.h +++ b/Demos/Device/LowLevel/Mouse/Mouse.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include <string.h>
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/ProtocolDecoders.h b/Demos/Device/LowLevel/RNDISEthernet/Lib/ProtocolDecoders.h index 7bae188e8..018567550 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/Lib/ProtocolDecoders.h +++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/ProtocolDecoders.h @@ -38,6 +38,8 @@ /* Includes: */
#include <avr/io.h>
+ #include <avr/pgmspace.h>
+ #include <stdio.h>
#include <LUFA/Drivers/Peripheral/SerialStream.h>
diff --git a/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.c b/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.c index 1b617dd2e..cb06bc333 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.c +++ b/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.c @@ -47,9 +47,8 @@ int main(void) TCP_Init();
Webserver_Init();
- printf_P(PSTR("\r\n\r\n****** RNDIS Demo running. ******\r\n"));
-
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.h b/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.h index 3828134ac..478ed1a23 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.h +++ b/Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.h @@ -39,10 +39,9 @@ /* Includes: */
#include <avr/io.h>
#include <avr/wdt.h>
- #include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
- #include <stdio.h>
#include "Descriptors.h"
diff --git a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c index bad87578a..52ef28c6f 100644 --- a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c +++ b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.c @@ -57,6 +57,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.h b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.h index 5427a6902..1ec261c41 100644 --- a/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.h +++ b/Demos/Device/LowLevel/VirtualSerial/VirtualSerial.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include "Descriptors.h"
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.c b/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.c index dc94e1fba..98bf50bff 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.c +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Mouse Host/Device Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.h b/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.h index 50b89ad32..48035d624 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.h +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c index 0e7e57982..32c9b698f 100644 --- a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c +++ b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c @@ -70,6 +70,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Joystick Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.h b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.h index b47630ae4..7ee7b80d7 100644 --- a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.h +++ b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c b/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c index 15b93199e..61292a4d0 100644 --- a/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c +++ b/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c @@ -65,7 +65,8 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Keyboard Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-
+ sei();
+
for (;;)
{
switch (USB_HostState)
diff --git a/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.h b/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.h index 0dc2d3bf5..2e5f1caee 100644 --- a/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.h +++ b/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c index 14b650120..531757a4a 100644 --- a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c +++ b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c @@ -70,6 +70,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Keyboard Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.h b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.h index 8f4194816..98d00fb3c 100644 --- a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.h +++ b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c index 064c22dd6..8fbf31b86 100644 --- a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c +++ b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c @@ -63,6 +63,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "MIDI Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.h b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.h index 6a93c9717..8da4a95ef 100644 --- a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.h +++ b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c b/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c index 6740d9cb7..a442c1b47 100644 --- a/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c +++ b/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c @@ -63,6 +63,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Mass Storage Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.h b/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.h index 5a61c268e..e97d1e3fe 100644 --- a/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.h +++ b/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <ctype.h>
#include <stdio.h>
diff --git a/Demos/Host/ClassDriver/MouseHost/MouseHost.c b/Demos/Host/ClassDriver/MouseHost/MouseHost.c index 4501a25dc..af75d4ba5 100644 --- a/Demos/Host/ClassDriver/MouseHost/MouseHost.c +++ b/Demos/Host/ClassDriver/MouseHost/MouseHost.c @@ -65,6 +65,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Mouse Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/MouseHost/MouseHost.h b/Demos/Host/ClassDriver/MouseHost/MouseHost.h index 1fdf42b86..bc64120f0 100644 --- a/Demos/Host/ClassDriver/MouseHost/MouseHost.h +++ b/Demos/Host/ClassDriver/MouseHost/MouseHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c index c735b5c00..296f86bfb 100644 --- a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c @@ -68,6 +68,7 @@ int main(void) SetupHardware();
puts_P(PSTR(ESC_FG_CYAN "Mouse Host Demo running.\r\n" ESC_FG_WHITE));
+ sei();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.h b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.h index 8d798ab37..e88738d5a 100644 --- a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.h +++ b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c index 2df657293..d2baad620 100644 --- a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c +++ b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c @@ -62,6 +62,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Printer Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.h b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.h index c2ebede68..2fb7c8cef 100644 --- a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.h +++ b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c index e31f9a336..f5c3e4256 100644 --- a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c +++ b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c @@ -70,6 +70,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "RNDIS Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.h b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.h index 06b9fd525..c0d0c6083 100644 --- a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.h +++ b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c index ff33c457d..81bfbe421 100644 --- a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c +++ b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c @@ -65,6 +65,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Still Image Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.h b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.h index 35c9f1276..4078238e0 100644 --- a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.h +++ b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c index d5ec0417b..df6ad9796 100644 --- a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c +++ b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c @@ -65,6 +65,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "CDC Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.h b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.h index 785a605a0..a54e75f9f 100644 --- a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.h +++ b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c index 8f6e1f2ff..e74d37749 100644 --- a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c +++ b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c @@ -54,6 +54,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Bluetooth Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h index 62baf06ab..8a2817cb7 100644 --- a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h +++ b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include "Lib/ServiceDiscoveryProtocol.h"
diff --git a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c index 38d96a3df..3dc314e49 100644 --- a/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c +++ b/Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Generic HID Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.c b/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.c index 144830ec4..04870b10a 100644 --- a/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.c +++ b/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Joystick HID Parser Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.h b/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.h index 38fe3e44b..2ac9d5cff 100644 --- a/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.h +++ b/Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/LowLevel/KeyboardHost/KeyboardHost.c b/Demos/Host/LowLevel/KeyboardHost/KeyboardHost.c index b85d40d18..633094f13 100644 --- a/Demos/Host/LowLevel/KeyboardHost/KeyboardHost.c +++ b/Demos/Host/LowLevel/KeyboardHost/KeyboardHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Keyboard HID Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.c b/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.c index 778220b47..431e76aea 100644 --- a/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.c +++ b/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Keyboard HID Parser Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.h b/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.h index f5aaf2da8..5df5622d7 100644 --- a/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.h +++ b/Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.h @@ -36,6 +36,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/LowLevel/MIDIHost/MIDIHost.c b/Demos/Host/LowLevel/MIDIHost/MIDIHost.c index 6964f71ea..cbbb0c565 100644 --- a/Demos/Host/LowLevel/MIDIHost/MIDIHost.c +++ b/Demos/Host/LowLevel/MIDIHost/MIDIHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "MIDI Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/MIDIHost/MIDIHost.h b/Demos/Host/LowLevel/MIDIHost/MIDIHost.h index 094adcc4a..576ad601e 100644 --- a/Demos/Host/LowLevel/MIDIHost/MIDIHost.h +++ b/Demos/Host/LowLevel/MIDIHost/MIDIHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.c b/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.c index 55b85939f..31d2c104d 100644 --- a/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.c +++ b/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.c @@ -50,6 +50,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Mass Storage Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.h b/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.h index fad372c4e..0d92fd533 100644 --- a/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.h +++ b/Demos/Host/LowLevel/MassStorageHost/MassStorageHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
diff --git a/Demos/Host/LowLevel/MouseHost/MouseHost.c b/Demos/Host/LowLevel/MouseHost/MouseHost.c index 1c5940005..5cf5e4485 100644 --- a/Demos/Host/LowLevel/MouseHost/MouseHost.c +++ b/Demos/Host/LowLevel/MouseHost/MouseHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Mouse HID Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c index 14883018c..e13f5f48e 100644 --- a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Mouse HID Parser Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.h b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.h index e05beb8dd..10cd8ecef 100644 --- a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.h +++ b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/LowLevel/PrinterHost/PrinterHost.c b/Demos/Host/LowLevel/PrinterHost/PrinterHost.c index 6840138b5..a2c9fd863 100644 --- a/Demos/Host/LowLevel/PrinterHost/PrinterHost.c +++ b/Demos/Host/LowLevel/PrinterHost/PrinterHost.c @@ -46,6 +46,7 @@ int main(void) LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
puts_P(PSTR(ESC_FG_CYAN "Printer Host Demo running.\r\n" ESC_FG_WHITE));
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/PrinterHost/PrinterHost.h b/Demos/Host/LowLevel/PrinterHost/PrinterHost.h index 7fa572cf9..9b0bb5dda 100644 --- a/Demos/Host/LowLevel/PrinterHost/PrinterHost.h +++ b/Demos/Host/LowLevel/PrinterHost/PrinterHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <string.h>
diff --git a/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c index 5ca591578..8e274302e 100644 --- a/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c +++ b/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "RNDIS Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.h b/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.h index 20a48ac10..8e9215751 100644 --- a/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.h +++ b/Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/Demos/Host/LowLevel/StillImageHost/StillImageHost.c b/Demos/Host/LowLevel/StillImageHost/StillImageHost.c index 45613197f..2daf3ef4b 100644 --- a/Demos/Host/LowLevel/StillImageHost/StillImageHost.c +++ b/Demos/Host/LowLevel/StillImageHost/StillImageHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "Still Image Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/StillImageHost/StillImageHost.h b/Demos/Host/LowLevel/StillImageHost/StillImageHost.h index ddbffeec4..92f007be9 100644 --- a/Demos/Host/LowLevel/StillImageHost/StillImageHost.h +++ b/Demos/Host/LowLevel/StillImageHost/StillImageHost.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include "ConfigDescriptor.h"
diff --git a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c index 588198bb4..735ebba31 100644 --- a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c +++ b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c @@ -46,6 +46,7 @@ int main(void) puts_P(PSTR(ESC_FG_CYAN "CDC Host Demo running.\r\n" ESC_FG_WHITE));
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.h b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.h index 7bfc13f31..ecf35229d 100644 --- a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.h +++ b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include <LUFA/Version.h>
diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.c b/LUFA/Drivers/USB/LowLevel/LowLevel.c index c9d0493b4..a088654f7 100644 --- a/LUFA/Drivers/USB/LowLevel/LowLevel.c +++ b/LUFA/Drivers/USB/LowLevel/LowLevel.c @@ -103,8 +103,6 @@ void USB_Init( #endif
USB_IsInitialized = true;
-
- sei();
}
void USB_ShutDown(void)
diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.h b/LUFA/Drivers/USB/LowLevel/LowLevel.h index 79261cd44..337a004a5 100644 --- a/LUFA/Drivers/USB/LowLevel/LowLevel.h +++ b/LUFA/Drivers/USB/LowLevel/LowLevel.h @@ -236,8 +236,12 @@ * allow for device connection to a host when in device mode, or for device enumeration while in
* host mode.
*
- * As the USB library relies on USB interrupts for some of its functionality, this routine will
- * enable global interrupts.
+ * As the USB library relies on interrupts for the device and host mode enumeration processes,
+ * the user must enable global interrupts before or shortly after this function is called. In
+ * device mode, interrupts must be enabled within 500ms of this function being called to ensure
+ * that the host does not time out whilst enumerating the device. In host mode, interrupts may be
+ * enabled at the application's leisure however enumeration will not begin of an attached device
+ * until after this has occurred.
*
* Calling this function when the USB interface is already initialized will cause a complete USB
* interface reset and re-enumeration.
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 425cb4372..2a772b880 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -28,6 +28,7 @@ * - Added LIBUSB_FILTERDRV_COMPAT compile time option to the AVRISP programmer project to make the code compatible with Windows
* builds of avrdude at the expense of AVRStudio compatibility
* - Removed two-step endpoint/pipe bank clear and switch sequence for smaller, faster endpoint/pipe code
+ * - The USB_Init() function no longer calls sei() - the user is now responsible for enabling interrupts when they are ready
*
* <b>Fixed:</b>
* - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt index 8467e0019..baed50987 100644 --- a/LUFA/ManPages/MigrationInformation.txt +++ b/LUFA/ManPages/MigrationInformation.txt @@ -16,6 +16,18 @@ * - The \ref TWI_StartTransmission() function now takes in a timeout period, expressed in milliseconds, within which the addressed
* device must respond or the function will abort.
*
+ * <b>Device Mode</b>
+ * - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
+ * to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
+ * for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
+ * functions correctly.
+ *
+ * <b>Host Mode</b>
+ * - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
+ * to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
+ * for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
+ * functions correctly.
+ *
* \section Sec_Migration100219 Migrating from 091223 to 100219
*
* <b>Non-USB Library Components</b>
diff --git a/Projects/AVRISP-MKII/AVRISP.c b/Projects/AVRISP-MKII/AVRISP.c index 2ba800199..cea1161d5 100644 --- a/Projects/AVRISP-MKII/AVRISP.c +++ b/Projects/AVRISP-MKII/AVRISP.c @@ -44,6 +44,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Projects/Benito/Benito.c b/Projects/Benito/Benito.c index 86da27a12..be623e90e 100644 --- a/Projects/Benito/Benito.c +++ b/Projects/Benito/Benito.c @@ -83,6 +83,8 @@ int main(void) SetupHardware();
Buffer_Initialize(&Tx_Buffer);
+
+ sei();
for (;;)
{
diff --git a/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.c b/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.c index 4df37504f..c86cd0752 100644 --- a/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.c +++ b/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.c @@ -88,6 +88,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.h b/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.h index f7f39d5a9..d2405f881 100644 --- a/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.h +++ b/Projects/Incomplete/MIDIToneGenerator/MIDIToneGenerator.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/power.h>
#include <avr/pgmspace.h>
+ #include <avr/interrupt.h>
#include <stdbool.h>
#include "Descriptors.h"
diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c index 8090b5d15..239eb7137 100644 --- a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c +++ b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c @@ -108,6 +108,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h index 562394545..f61e369eb 100644 --- a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h +++ b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include "DiskDevice.h"
diff --git a/Projects/LEDNotifier/LEDNotifier.c b/Projects/LEDNotifier/LEDNotifier.c index 61d5efcbb..5b5390024 100644 --- a/Projects/LEDNotifier/LEDNotifier.c +++ b/Projects/LEDNotifier/LEDNotifier.c @@ -107,6 +107,8 @@ int main(void) /* Create a regular blocking character stream for the interface so that it can be used with the stdio.h functions */
CDC_Device_CreateBlockingStream(&VirtualSerial_CDC_Interface, &USBSerialStream);
+
+ sei();
for (;;)
{
diff --git a/Projects/LEDNotifier/LEDNotifier.h b/Projects/LEDNotifier/LEDNotifier.h index ee41d7d93..243723ec8 100644 --- a/Projects/LEDNotifier/LEDNotifier.h +++ b/Projects/LEDNotifier/LEDNotifier.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <string.h>
#include <stdio.h>
diff --git a/Projects/Magstripe/Magstripe.c b/Projects/Magstripe/Magstripe.c index 88950cc21..39149b480 100644 --- a/Projects/Magstripe/Magstripe.c +++ b/Projects/Magstripe/Magstripe.c @@ -76,6 +76,8 @@ int main(void) for (uint8_t Buffer = 0; Buffer < TOTAL_TRACKS; Buffer++)
BitBuffer_Init(&TrackDataBuffers[Buffer]);
+
+ sei();
for (;;)
{
diff --git a/Projects/Magstripe/Magstripe.h b/Projects/Magstripe/Magstripe.h index ddadd0d75..8a48e7c1a 100644 --- a/Projects/Magstripe/Magstripe.h +++ b/Projects/Magstripe/Magstripe.h @@ -41,6 +41,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include "Descriptors.h"
#include "Lib/MagstripeHW.h"
diff --git a/Projects/MissileLauncher/MissileLauncher.c b/Projects/MissileLauncher/MissileLauncher.c index a18673290..cb0bd8570 100644 --- a/Projects/MissileLauncher/MissileLauncher.c +++ b/Projects/MissileLauncher/MissileLauncher.c @@ -95,10 +95,11 @@ int main(void) {
SetupHardware();
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-
CmdState = CMD_STOP;
+ LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
+
for (;;)
{
Read_Joystick_Status();
diff --git a/Projects/RelayBoard/RelayBoard.c b/Projects/RelayBoard/RelayBoard.c index a496679ae..2fb7b696c 100644 --- a/Projects/RelayBoard/RelayBoard.c +++ b/Projects/RelayBoard/RelayBoard.c @@ -44,6 +44,8 @@ int main(void)
{
SetupHardware();
+
+ sei();
for (;;)
USB_USBTask();
diff --git a/Projects/RelayBoard/RelayBoard.h b/Projects/RelayBoard/RelayBoard.h index 2ffa59023..f42d78cde 100644 --- a/Projects/RelayBoard/RelayBoard.h +++ b/Projects/RelayBoard/RelayBoard.h @@ -41,6 +41,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include "Descriptors.h"
diff --git a/Projects/TemperatureDataLogger/TempDataLogger.c b/Projects/TemperatureDataLogger/TempDataLogger.c index 35bf68bd6..59105286e 100644 --- a/Projects/TemperatureDataLogger/TempDataLogger.c +++ b/Projects/TemperatureDataLogger/TempDataLogger.c @@ -137,16 +137,17 @@ ISR(TIMER1_COMPA_vect, ISR_BLOCK) */
int main(void)
{
- /* Fetch logging interval from EEPROM */
- LoggingInterval500MS_SRAM = eeprom_read_byte(&LoggingInterval500MS_EEPROM);
-
SetupHardware();
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ /* Fetch logging interval from EEPROM */
+ LoggingInterval500MS_SRAM = eeprom_read_byte(&LoggingInterval500MS_EEPROM);
/* Mount and open the log file on the dataflash FAT partition */
OpenLogFile();
+ LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
+
/* Discard the first sample from the temperature sensor, as it is generally incorrect */
volatile uint8_t Dummy = Temperature_GetTemperature();
(void)Dummy;
diff --git a/Projects/TemperatureDataLogger/TempDataLogger.h b/Projects/TemperatureDataLogger/TempDataLogger.h index 3f3a3c04e..a6e770bb0 100644 --- a/Projects/TemperatureDataLogger/TempDataLogger.h +++ b/Projects/TemperatureDataLogger/TempDataLogger.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <stdio.h>
#include "Descriptors.h"
diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c index 73be33e1f..c9bc71734 100644 --- a/Projects/USBtoSerial/USBtoSerial.c +++ b/Projects/USBtoSerial/USBtoSerial.c @@ -77,6 +77,7 @@ int main(void) Buffer_Initialize(&USARTtoUSB_Buffer);
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Projects/Webserver/Webserver.c b/Projects/Webserver/Webserver.c index 541e0e2c5..cecd88168 100644 --- a/Projects/Webserver/Webserver.c +++ b/Projects/Webserver/Webserver.c @@ -44,6 +44,7 @@ int main(void) SetupHardware();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Projects/Webserver/Webserver.h b/Projects/Webserver/Webserver.h index f1351d891..4fb5b37b4 100644 --- a/Projects/Webserver/Webserver.h +++ b/Projects/Webserver/Webserver.h @@ -41,6 +41,7 @@ #include <avr/wdt.h>
#include <avr/pgmspace.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include <LUFA/Version.h>
#include <LUFA/Drivers/Board/LEDs.h>
diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c index 090b76791..5457a2283 100644 --- a/Projects/XPLAINBridge/XPLAINBridge.c +++ b/Projects/XPLAINBridge/XPLAINBridge.c @@ -81,6 +81,7 @@ int main(void) Buffer_Initialize(&UARTtoUSB_Buffer);
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
+ sei();
for (;;)
{
diff --git a/Projects/XPLAINBridge/XPLAINBridge.h b/Projects/XPLAINBridge/XPLAINBridge.h index 0c3a56c9d..877792d7f 100644 --- a/Projects/XPLAINBridge/XPLAINBridge.h +++ b/Projects/XPLAINBridge/XPLAINBridge.h @@ -40,6 +40,7 @@ #include <avr/io.h>
#include <avr/wdt.h>
#include <avr/power.h>
+ #include <avr/interrupt.h>
#include "AVRISPDescriptors.h"
#include "USARTDescriptors.h"
|