Add troubleshooting page to the build system section of the documentation.
[pub/USBasp.git] / Demos / Device / LowLevel / Keyboard / Keyboard.c
index 3755d09..c364d34 100644 (file)
@@ -19,7 +19,7 @@
   advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
   advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
-  The author disclaim all warranties with regard to this
+  The author disclaims all warranties with regard to this
   software, including all implied warranties of merchantability
   and fitness.  In no event shall the author be liable for any
   special, indirect or consequential damages or any damages
   software, including all implied warranties of merchantability
   and fitness.  In no event shall the author be liable for any
   special, indirect or consequential damages or any damages
@@ -62,7 +62,7 @@ int main(void)
        SetupHardware();
 
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
        SetupHardware();
 
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-       sei();
+       GlobalInterruptEnable();
 
        for (;;)
        {
 
        for (;;)
        {
@@ -294,14 +294,11 @@ void SendNextReport(void)
 {
        static USB_KeyboardReport_Data_t PrevKeyboardReportData;
        USB_KeyboardReport_Data_t        KeyboardReportData;
 {
        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);
 
 
        /* 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)))
        {
        /* Check if the idle period is set and has elapsed */
        if (IdleCount && (!(IdleMSRemaining)))
        {
@@ -311,6 +308,11 @@ void SendNextReport(void)
                /* Idle period is set and has elapsed, must send a report to the host */
                SendReport = true;
        }
                /* 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_EPADDR);
 
        /* Select the Keyboard Report Endpoint */
        Endpoint_SelectEndpoint(KEYBOARD_IN_EPADDR);