X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f1b6ddb7107fd9534cc6a8d6ab2d46f349d9cdb7..9da01ee78b59bcaed0d73e3f77d2f284885bfc76:/Demos/Device/LowLevel/Keyboard/Keyboard.c diff --git a/Demos/Device/LowLevel/Keyboard/Keyboard.c b/Demos/Device/LowLevel/Keyboard/Keyboard.c index 45bf010fc..6f9da5b26 100644 --- a/Demos/Device/LowLevel/Keyboard/Keyboard.c +++ b/Demos/Device/LowLevel/Keyboard/Keyboard.c @@ -62,7 +62,7 @@ int main(void) SetupHardware(); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); - sei(); + GlobalInterruptEnable(); for (;;) { @@ -117,10 +117,8 @@ void EVENT_USB_Device_ConfigurationChanged(void) bool ConfigSuccess = true; /* Setup HID Report Endpoints */ - ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN, - KEYBOARD_EPSIZE, ENDPOINT_BANK_SINGLE); - ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT, - KEYBOARD_EPSIZE, ENDPOINT_BANK_SINGLE); + ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPADDR, EP_TYPE_INTERRUPT, KEYBOARD_EPSIZE, 1); + ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_OUT_EPADDR, EP_TYPE_INTERRUPT, KEYBOARD_EPSIZE, 1); /* Turn on Start-of-Frame events for tracking HID report period expiry */ USB_Device_EnableSOFEvents(); @@ -296,14 +294,11 @@ void SendNextReport(void) { static USB_KeyboardReport_Data_t PrevKeyboardReportData; USB_KeyboardReport_Data_t KeyboardReportData; - bool SendReport = true; + bool SendReport = false; /* Create the next keyboard report for transmission to the host */ CreateKeyboardReport(&KeyboardReportData); - /* Check to see if the report data has changed - if so a report MUST be sent */ - SendReport = (memcmp(&PrevKeyboardReportData, &KeyboardReportData, sizeof(USB_KeyboardReport_Data_t)) != 0); - /* Check if the idle period is set and has elapsed */ if (IdleCount && (!(IdleMSRemaining))) { @@ -313,9 +308,14 @@ void SendNextReport(void) /* Idle period is set and has elapsed, must send a report to the host */ SendReport = true; } + else + { + /* Check to see if the report data has changed - if so a report MUST be sent */ + SendReport = (memcmp(&PrevKeyboardReportData, &KeyboardReportData, sizeof(USB_KeyboardReport_Data_t)) != 0); + } /* Select the Keyboard Report Endpoint */ - Endpoint_SelectEndpoint(KEYBOARD_IN_EPNUM); + Endpoint_SelectEndpoint(KEYBOARD_IN_EPADDR); /* Check if Keyboard Endpoint Ready for Read/Write and if we should send a new report */ if (Endpoint_IsReadWriteAllowed() && SendReport) @@ -335,7 +335,7 @@ void SendNextReport(void) void ReceiveNextReport(void) { /* Select the Keyboard LED Report Endpoint */ - Endpoint_SelectEndpoint(KEYBOARD_OUT_EPNUM); + Endpoint_SelectEndpoint(KEYBOARD_OUT_EPADDR); /* Check if Keyboard LED Endpoint contains a packet */ if (Endpoint_IsOUTReceived())