*/\r
USB_ClassInfo_HID_t Keyboard_HID_Interface =\r
{\r
- .InterfaceNumber = 0,\r
+ .InterfaceNumber = 0,\r
\r
- .ReportINEndpointNumber = KEYBOARD_EPNUM,\r
- .ReportINEndpointSize = KEYBOARD_EPSIZE,\r
+ .ReportINEndpointNumber = KEYBOARD_EPNUM,\r
+ .ReportINEndpointSize = KEYBOARD_EPSIZE,\r
\r
.ReportINBufferSize = sizeof(USB_KeyboardReport_Data_t),\r
\r
- .IdleCount = 500,\r
+ .IdleCount = 500,\r
};\r
\r
/** Main program entry point. This routine contains the overall program flow, including initial\r
*/\r
int main(void)\r
{\r
- SetupHardware();\r
-\r
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
- \r
- for (;;)\r
- {\r
- USB_HID_USBTask(&Keyboard_HID_Interface);\r
- USB_USBTask();\r
- }\r
+ SetupHardware();\r
+\r
+ LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
+ \r
+ for (;;)\r
+ {\r
+ USB_HID_USBTask(&Keyboard_HID_Interface);\r
+ USB_USBTask();\r
+ }\r
}\r
\r
/** Configures the board hardware and chip peripherals for the demo's functionality. */\r
void SetupHardware()\r
{\r
- /* Disable watchdog if enabled by bootloader/fuses */\r
- MCUSR &= ~(1 << WDRF);\r
- wdt_disable();\r
+ /* Disable watchdog if enabled by bootloader/fuses */\r
+ MCUSR &= ~(1 << WDRF);\r
+ wdt_disable();\r
\r
- /* Disable clock division */\r
- clock_prescale_set(clock_div_1);\r
+ /* Disable clock division */\r
+ clock_prescale_set(clock_div_1);\r
\r
- /* Hardware Initialization */\r
- Joystick_Init();\r
- LEDs_Init();\r
- Buttons_Init();\r
- USB_Init();\r
+ /* Hardware Initialization */\r
+ Joystick_Init();\r
+ LEDs_Init();\r
+ Buttons_Init();\r
+ USB_Init();\r
\r
/* Millisecond timer initialization, with output compare interrupt enabled for the idle timing */\r
OCR0A = ((F_CPU / 64) / 1000);\r
/** Event handler for the library USB Connection event. */\r
void EVENT_USB_Connect(void)\r
{\r
- LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);\r
}\r
\r
/** Event handler for the library USB Disconnection event. */\r
void EVENT_USB_Disconnect(void)\r
{\r
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
+ LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);\r
}\r
\r
/** Event handler for the library USB Configuration Changed event. */\r
void EVENT_USB_ConfigurationChanged(void)\r
{\r
- LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
\r
- if (!(USB_HID_ConfigureEndpoints(&Keyboard_HID_Interface)))\r
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+ if (!(USB_HID_ConfigureEndpoints(&Keyboard_HID_Interface)))\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
}\r
\r
/** Event handler for the library USB Unhandled Control Packet event. */\r
void EVENT_USB_UnhandledControlPacket(void)\r
{\r
- USB_HID_ProcessControlPacket(&Keyboard_HID_Interface);\r
+ USB_HID_ProcessControlPacket(&Keyboard_HID_Interface);\r
}\r
\r
/** ISR to keep track of each millisecond interrupt, for determining the HID class idle period remaining when set. */\r
*/\r
uint16_t CALLBACK_USB_HID_CreateNextHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, uint8_t* ReportID, void* ReportData)\r
{\r
- USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;\r
- \r
- uint8_t JoyStatus_LCL = Joystick_GetStatus();\r
- uint8_t ButtonStatus_LCL = Buttons_GetStatus();\r
-\r
- if (JoyStatus_LCL & JOY_UP)\r
- KeyboardReport->KeyCode[0] = 0x04; // A\r
- else if (JoyStatus_LCL & JOY_DOWN)\r
- KeyboardReport->KeyCode[0] = 0x05; // B\r
-\r
- if (JoyStatus_LCL & JOY_LEFT)\r
- KeyboardReport->KeyCode[0] = 0x06; // C\r
- else if (JoyStatus_LCL & JOY_RIGHT)\r
- KeyboardReport->KeyCode[0] = 0x07; // D\r
-\r
- if (JoyStatus_LCL & JOY_PRESS)\r
- KeyboardReport->KeyCode[0] = 0x08; // E\r
- \r
- if (ButtonStatus_LCL & BUTTONS_BUTTON1)\r
- KeyboardReport->KeyCode[0] = 0x09; // F\r
- \r
- return sizeof(USB_KeyboardReport_Data_t);\r
+ USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;\r
+ \r
+ uint8_t JoyStatus_LCL = Joystick_GetStatus();\r
+ uint8_t ButtonStatus_LCL = Buttons_GetStatus();\r
+\r
+ if (JoyStatus_LCL & JOY_UP)\r
+ KeyboardReport->KeyCode[0] = 0x04; // A\r
+ else if (JoyStatus_LCL & JOY_DOWN)\r
+ KeyboardReport->KeyCode[0] = 0x05; // B\r
+\r
+ if (JoyStatus_LCL & JOY_LEFT)\r
+ KeyboardReport->KeyCode[0] = 0x06; // C\r
+ else if (JoyStatus_LCL & JOY_RIGHT)\r
+ KeyboardReport->KeyCode[0] = 0x07; // D\r
+\r
+ if (JoyStatus_LCL & JOY_PRESS)\r
+ KeyboardReport->KeyCode[0] = 0x08; // E\r
+ \r
+ if (ButtonStatus_LCL & BUTTONS_BUTTON1)\r
+ KeyboardReport->KeyCode[0] = 0x09; // F\r
+ \r
+ return sizeof(USB_KeyboardReport_Data_t);\r
}\r
\r
/** HID class driver callback function for the processing of HID reports from the host.\r
void CALLBACK_USB_HID_ProcessReceivedHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, uint8_t ReportID,\r
void* ReportData, uint16_t ReportSize)\r
{\r
- uint8_t LEDMask = LEDS_NO_LEDS;\r
- uint8_t* LEDReport = (uint8_t*)ReportData;\r
-\r
- if (*LEDReport & 0x01) // NUM Lock\r
- LEDMask |= LEDS_LED1;\r
- \r
- if (*LEDReport & 0x02) // CAPS Lock\r
- LEDMask |= LEDS_LED3;\r
-\r
- if (*LEDReport & 0x04) // SCROLL Lock\r
- LEDMask |= LEDS_LED4;\r
- \r
- LEDs_SetAllLEDs(LEDMask);\r
+ uint8_t LEDMask = LEDS_NO_LEDS;\r
+ uint8_t* LEDReport = (uint8_t*)ReportData;\r
+\r
+ if (*LEDReport & 0x01) // NUM Lock\r
+ LEDMask |= LEDS_LED1;\r
+ \r
+ if (*LEDReport & 0x02) // CAPS Lock\r
+ LEDMask |= LEDS_LED3;\r
+\r
+ if (*LEDReport & 0x04) // SCROLL Lock\r
+ LEDMask |= LEDS_LED4;\r
+ \r
+ LEDs_SetAllLEDs(LEDMask);\r
}\r