aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Keyboard/Keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'Demos/Keyboard/Keyboard.c')
-rw-r--r--Demos/Keyboard/Keyboard.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/Demos/Keyboard/Keyboard.c b/Demos/Keyboard/Keyboard.c
index 3884eeb16..f506070c0 100644
--- a/Demos/Keyboard/Keyboard.c
+++ b/Demos/Keyboard/Keyboard.c
@@ -140,6 +140,15 @@ EVENT_HANDLER(USB_Reset)
*/
EVENT_HANDLER(USB_Disconnect)
{
+ /* Stop running keyboard reporting and USB management tasks */
+ #if !defined(INTERRUPT_DATA_ENDPOINT)
+ Scheduler_SetTaskMode(USB_Keyboard_Report, TASK_STOP);
+ #endif
+
+ #if !defined(INTERRUPT_CONTROL_ENDPOINT)
+ Scheduler_SetTaskMode(USB_USBTask, TASK_STOP);
+ #endif
+
/* Indicate USB not ready */
UpdateStatus(Status_USBNotReady);
}
@@ -171,6 +180,11 @@ EVENT_HANDLER(USB_ConfigurationChanged)
/* Indicate USB connected and ready */
UpdateStatus(Status_USBReady);
+
+ #if !defined(INTERRUPT_DATA_ENDPOINT)
+ /* Start running keyboard reporting task */
+ Scheduler_SetTaskMode(USB_Keyboard_Report, TASK_RUN);
+ #endif
}
/** Event handler for the USB_UnhandledControlPacket event. This is used to catch standard and class specific