#ifndef usb_serial_h__ #define usb_serial_h__ #include void usb_init(void); // initialize everything uint8_t usb_configured(void); // is the USB port configured int8_t usb_keyboard_press(uint8_t key, uint8_t modifier); int8_t usb_keyboard_send(void); extern uint8_t keyboard_modifier_keys; extern uint8_t keyboard_keys[6]; extern volatile uint8_t keyboard_leds; int8_t usb_debug_putchar(uint8_t c); // transmit a character void usb_debug_flush_output(void); // immediately transmit any buffered output #define USB_DEBUG_HID #define KEY_CTRL 0x01 #define KEY_SHIFT 0x02 #define KEY_ALT 0x04 #define KEY_GUI 0x08 #define KEY_LEFT_CTRL 0x01 #define KEY_LEFT_SHIFT 0x02 #define KEY_LEFT_ALT 0x04 #define KEY_LEFT_GUI 0x08 #define KEY_RIGHT_CTRL 0x10 #define KEY_RIGHT_SHIFT 0x20 #define KEY_RIGHT_ALT 0x40 #define KEY_RIGHT_GUI 0x80 #define KEY_A 4 #define KEY_B 5 #define KEY_C 6 #define KEY_D 7 #define KEY_E 8 #define KEY_F 9 #define KEY_G 10 #define KEY_H 11 #define KEY_I 12 #define KEY_J 13 #define KEY_K 14 #define KEY_L 15 #define KEY_M 16 #define KEY_N 17 #define KEY_O 18 #define KEY_P 19 #define KEY_Q 20 #define KEY_R 21 #define KEY_S 22 #define KEY_T 23 #define KEY_U 24 #define KEY_V 25 #define KEY_W 26 #define KEY_X 27 #define KEY_Y 28 #define KEY_Z 29 #define KEY_1 30 #define KEY_2 31 #define KEY_3 32 #define KEY_4 33 #define KEY_5 34 #define KEY_6 35 #define KEY_7 36 #define KEY_8 37 #define KEY_9 38 #define KEY_0 39 #define KEY_ENTER 40 #define KEY_ESC 41 #define KEY_BACKSPACE 42 #define KEY_TAB 43 #define KEY_SPACE 44 #define KEY_MINUS 45 #define KEY_EQUAL 46 #define KEY_LEFT_BRACE 47 #define KEY_RIGHT_BRACE 48 #define KEY_BACKSLASH 49 #define KEY_NUMBER 50 #define KEY_SEMICOLON 51 #define KEY_QUOTE 52 #define KEY_TILDE 53 #define KEY_COMMA 54 #define KEY_PERIOD 55 #define KEY_SLASH 56 #define KEY_CAPS_LOCK 57 #define KEY_F1 58 #define KEY_F2 59 #define KEY_F3 60 #define KEY_F4 61 #define KEY_F5 62 #define KEY_F6 63 #define KEY_F7 64 #define KEY_F8 65 #define KEY_F9 66 #define KEY_F10 67 #define KEY_F11 68 #define KEY_F12 69 #define KEY_PRINTSCREEN 70 #define KEY_SCROLL_LOCK 71 #define KEY_PAUSE 72 #define KEY_INSERT 73 #define KEY_HOME 74 #define KEY_PAGE_UP 75 #define KEY_DELETE 76 #define KEY_END 77 #define KEY_PAGE_DOWN 78 #define KEY_RIGHT 79 #define KEY_LEFT 80 #define KEY_DOWN 81 #define KEY_UP 82 #define KEY_NUM_LOCK 83 #define KEYPAD_SLASH 84 #define KEYPAD_ASTERIX 85 #define KEYPAD_MINUS 86 #define KEYPAD_PLUS 87 #define KEYPAD_ENTER 88 #define KEYPAD_1 89 #define KEYPAD_2 90 #define KEYPAD_3 91 #define KEYPAD_4 92 #define KEYPAD_5 93 #define KEYPAD_6 94 #define KEYPAD_7 95 #define KEYPAD_8 96 #define KEYPAD_9 97 #define KEYPAD_0 98 #define KEYPAD_PERIOD 99 // Everything below this point is only intended for usb_serial.c #ifdef USB_SERIAL_PRIVATE_INCLUDE #include #include #include #define EP_TYPE_CONTROL 0x00 #define EP_TYPE_BULK_IN 0x81 #define EP_TYPE_BULK_OUT 0x80 #define EP_TYPE_INTERRUPT_IN 0xC1 #define EP_TYPE_INTERRUPT_OUT 0xC0 #define EP_TYPE_ISOCHRONOUS_IN 0x41 #define EP_TYPE_ISOCHRONOUS_OUT 0x40 #define EP_SINGLE_BUFFER 0x02 #define EP_DOUBLE_BUFFER 0x06 #define EP_SIZE(s) ((s) == 64 ? 0x30 : \ ((s) == 32 ? 0x20 : \ ((s) == 16 ? 0x10 : \ 0x00))) #define MAX_ENDPOINT 4 #define LSB(n) (n & 255) #define MSB(n) ((n >> 8) & 255) #if defined(__AVR_AT90USB162__) #define HW_CONFIG() #define PLL_CONFIG() (PLLCSR = ((1<