00001
00002
00003
00004
00005 extern void otg_user_task_init(void);
00006 extern void otg_user_task(void);
00007 extern void Led_print_otg_status(void);
00008
00009
00010
00011 #define SESSION_HOST 0xF0
00012 #define SESSION_DEVICE 0x0F
00013 #define SESSION_OFF 0x00
00014
00015 #define USB_NEW_PACKET 0xFF
00016 #define USB_READ_PACKET 0x00
00017
00018 #define OTG_MOUSE_SPEED 15
00019
00020 #define Clear_usb_report() (Usb_report[0]=0, Usb_report[1]=0, Usb_report[2]=0, Usb_report[3]=0)
00021
00022
00023 #if (TARGET_BOARD == STK525)
00024
00025 #define Led_usb_connected_on() Led0_on()
00026 #define Led_usb_connected_off() Led0_off()
00027
00028 #define Led_hid_toggle() Led1_toggle()
00029 #define Led_hid_off() Led1_off()
00030
00031 #define Led_unsupported_on() Led2_on()
00032 #define Led_unsupported_off() Led2_off()
00033
00034 #define Led_noresponse_on() Led3_on()
00035 #define Led_noresponse_off() Led3_off()
00036 #elif (TARGET_BOARD == USBKEY)
00037
00038 #define Led_usb_connected_on() Led1_on()
00039 #define Led_usb_connected_off() Led1_off()
00040
00041 #define Led_hid_toggle() Led2_toggle()
00042 #define Led_hid_off() Led2_off()
00043
00044 #define Led_unsupported_on() Led3_on()
00045 #define Led_unsupported_off() Led3_off()
00046
00047 #define Led_noresponse_on() Led0_on()
00048 #define Led_noresponse_off() Led0_off()
00049 #endif
00050
00051
00052
00053
00054
00055
00056 #define Timer_select(ts) Timer16_select(ts)
00057 #define TIMER_DELAY TIMER16_3
00058
00059
00060
00061 #define Delay_config(ms) (Timer16_set_clock(TIMER16_CLKIO_BY_256), \
00062 Timer16_set_mode_output_a(TIMER16_COMP_MODE_NORMAL), \
00063 Timer16_set_waveform_mode(TIMER16_WGM_CTC_OCR), \
00064 Timer16_set_compare_a((U16)(31)*(U16)(ms)))
00065 #define Delay_reset() (Timer16_set_counter(0x0000), Timer16_clear_compare_a_it())
00066 #define Is_delay_end() (Timer16_get_compare_a_it())
00067 #define Is_not_delay_end() (!(Timer16_get_compare_a_it()))
00068
00069
00070
00071 #define Bp_delay_debounce() { Timer_select(TIMER_DELAY); Delay_config(20); \
00072 Delay_reset(); while (Is_not_delay_end());}
00073
00074
00075
00085 #define host_hid_set_idle() (usb_request.bmRequestType = 0x21,\
00086 usb_request.bRequest = 0x0A,\
00087 usb_request.wValue = 0,\
00088 usb_request.wIndex = 0,\
00089 usb_request.wLength = 0,\
00090 usb_request.uncomplete_read = FALSE,\
00091 host_send_control(data_stage))
00092
00102 #define host_get_hid_repport_descriptor() (usb_request.bmRequestType = 0x81,\
00103 usb_request.bRequest = 0x06,\
00104 usb_request.wValue = 0x2200,\
00105 usb_request.wIndex = 0,\
00106 usb_request.wLength = SIZEOF_DATA_STAGE,\
00107 usb_request.uncomplete_read = FALSE,\
00108 host_send_control(data_stage))
00109