@ -41,7 +41,7 @@ USB_ClassInfo_HID_t Keyboard_HID_Interface =
. ReportOUTEndpointNumber = KEYBOARD_OUT_EPNUM ,
. ReportOUTEndpointSize = HID_EPSIZE ,
. Report BufferSize = sizeof ( USB_KeyboardReport_Data_t ) ,
. Report IN BufferSize = sizeof ( USB_KeyboardReport_Data_t ) ,
. IdleCount = 500 ,
} ;
@ -53,7 +53,7 @@ USB_ClassInfo_HID_t Mouse_HID_Interface =
. ReportINEndpointNumber = MOUSE_IN_EPNUM ,
. ReportINEndpointSize = HID_EPSIZE ,
. Report BufferSize = sizeof ( USB_MouseReport_Data_t ) ,
. Report IN BufferSize = sizeof ( USB_MouseReport_Data_t ) ,
. ReportOUTEndpointNumber = 0 ,
. ReportOUTEndpointSize = 0 ,
@ -85,7 +85,13 @@ void SetupHardware()
/* Hardware Initialization */
Joystick_Init ( ) ;
LEDs_Init ( ) ;
USB_Init ( ) ;
USB_Init ( ) ;
/* Millisecond timer initialization, with output compare interrupt enabled for the idle timing */
OCR0A = ( ( F_CPU / 64 ) / 1000 ) ;
TCCR0A = ( 1 < < WGM01 ) ;
TCCR0B = ( ( 1 < < CS01 ) | ( 1 < < CS00 ) ) ;
TIMSK0 = ( 1 < < OCIE0A ) ;
}
void EVENT_USB_Connect ( void )
@ -115,10 +121,13 @@ void EVENT_USB_UnhandledControlPacket(void)
USB_HID_ProcessControlPacket ( & Mouse_HID_Interface ) ;
}
void EVENT_USB_StartOfFrame ( void )
ISR ( TIMER0_COMPA_vect , ISR_BLOCK )
{
USB_HID_RegisterStartOfFrame ( & Keyboard_HID_Interface ) ;
USB_HID_RegisterStartOfFrame ( & Mouse_HID_Interface ) ;
if ( Keyboard_HID_Interface . IdleMSRemaining )
Keyboard_HID_Interface . IdleMSRemaining - - ;
if ( Mouse_HID_Interface . IdleMSRemaining )
Mouse_HID_Interface . IdleMSRemaining - - ;
}
uint16_t CALLBACK_USB_HID_CreateNextHIDReport ( USB_ClassInfo_HID_t * HIDInterfaceInfo , void * ReportData )