Fixed EVENT_USB_CDC_ControLineStateChanged() event not taking the CDC interface struc...
[pub/USBasp.git] / Bootloaders / TeensyHID / TeensyHID.c
index 4f09ac5..ee6c91a 100644 (file)
@@ -53,8 +53,8 @@ int main(void)
        MCUSR &= ~(1 << WDRF);\r
        wdt_disable();\r
 \r
-       /* Disable Clock Division */\r
-       SetSystemClockPrescaler(0);\r
+       /* Disable clock division */\r
+       clock_prescale_set(clock_div_1);\r
 \r
        /* Relocate the interrupt vector table to the bootloader section */\r
        MCUCR = (1 << IVCE);\r
@@ -81,7 +81,7 @@ int main(void)
 /** Event handler for the USB_ConfigurationChanged event. This configures the device's endpoints ready\r
  *  to relay data to and from the attached USB host.\r
  */\r
-EVENT_HANDLER(USB_ConfigurationChanged)\r
+void EVENT_USB_ConfigurationChanged(void)\r
 {\r
        /* Setup HID Report Endpoint */\r
        Endpoint_ConfigureEndpoint(HID_EPNUM, EP_TYPE_INTERRUPT,\r
@@ -93,18 +93,18 @@ EVENT_HANDLER(USB_ConfigurationChanged)
  *  control requests that are not handled internally by the USB library (including the HID commands, which are\r
  *  all issued via the control endpoint), so that they can be handled appropriately for the application.\r
  */\r
-EVENT_HANDLER(USB_UnhandledControlPacket)\r
+void EVENT_USB_UnhandledControlPacket(void)\r
 {\r
        /* Handle HID Class specific requests */\r
-       switch (bRequest)\r
+       switch (USB_ControlRequest.bRequest)\r
        {\r
                case REQ_SetReport:\r
-                       if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))\r
+                       if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))\r
                        {\r
-                               Endpoint_ClearSetupReceived();\r
+                               Endpoint_ClearSETUP();\r
                                \r
                                /* Wait until the command (report) has been sent by the host */\r
-                               while (!(Endpoint_IsSetupOUTReceived()));\r
+                               while (!(Endpoint_IsOUTReceived()));\r
 \r
                                /* Read in the write destination address */\r
                                uint16_t PageAddress = Endpoint_Read_Word_LE();\r
@@ -126,8 +126,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
                                                /* Check if endpoint is empty - if so clear it and wait until ready for next packet */\r
                                                if (!(Endpoint_BytesInEndpoint()))\r
                                                {\r
-                                                       Endpoint_ClearSetupOUT();\r
-                                                       while (!(Endpoint_IsSetupOUTReceived()));\r
+                                                       Endpoint_ClearOUT();\r
+                                                       while (!(Endpoint_IsOUTReceived()));\r
                                                }\r
 \r
                                                /* Write the next data word to the FLASH page */\r
@@ -142,13 +142,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
                                        boot_rww_enable();\r
                                }\r
 \r
-                               Endpoint_ClearSetupOUT();\r
+                               Endpoint_ClearOUT();\r
 \r
-                               /* Wait until the host is ready to receive the request confirmation */\r
-                               while (!(Endpoint_IsSetupINReady()));\r
-                               \r
-                               /* Handshake the request by sending an empty IN packet */\r
-                               Endpoint_ClearSetupIN();\r
+                               /* Acknowledge status stage */\r
+                               while (!(Endpoint_IsINReady()));\r
+                               Endpoint_ClearIN();\r
                        }\r
                        \r
                        break;\r