fixed vusb variant of converter ps2usb
This commit is contained in:
		
							parent
							
								
									8cec0bc9d6
								
							
						
					
					
						commit
						93915040e7
					
				
					 4 changed files with 31 additions and 18 deletions
				
			
		|  | @ -67,7 +67,7 @@ optimizing hints: | |||
| #if USB_CFG_DESCR_PROPS_STRING_0 == 0 | ||||
| #undef USB_CFG_DESCR_PROPS_STRING_0 | ||||
| #define USB_CFG_DESCR_PROPS_STRING_0    sizeof(usbDescriptorString0) | ||||
| PROGMEM char usbDescriptorString0[] = { /* language descriptor */ | ||||
| const PROGMEM char usbDescriptorString0[] = { /* language descriptor */ | ||||
|     4,          /* sizeof(usbDescriptorString0): length of descriptor in bytes */ | ||||
|     3,          /* descriptor type */ | ||||
|     0x09, 0x04, /* language index (0x0409 = US-English) */ | ||||
|  | @ -77,7 +77,7 @@ PROGMEM char usbDescriptorString0[] = { /* language descriptor */ | |||
| #if USB_CFG_DESCR_PROPS_STRING_VENDOR == 0 && USB_CFG_VENDOR_NAME_LEN | ||||
| #undef USB_CFG_DESCR_PROPS_STRING_VENDOR | ||||
| #define USB_CFG_DESCR_PROPS_STRING_VENDOR   sizeof(usbDescriptorStringVendor) | ||||
| PROGMEM int  usbDescriptorStringVendor[] = { | ||||
| const PROGMEM int  usbDescriptorStringVendor[] = { | ||||
|     USB_STRING_DESCRIPTOR_HEADER(USB_CFG_VENDOR_NAME_LEN), | ||||
|     USB_CFG_VENDOR_NAME | ||||
| }; | ||||
|  | @ -86,7 +86,7 @@ PROGMEM int  usbDescriptorStringVendor[] = { | |||
| #if USB_CFG_DESCR_PROPS_STRING_PRODUCT == 0 && USB_CFG_DEVICE_NAME_LEN | ||||
| #undef USB_CFG_DESCR_PROPS_STRING_PRODUCT | ||||
| #define USB_CFG_DESCR_PROPS_STRING_PRODUCT   sizeof(usbDescriptorStringDevice) | ||||
| PROGMEM int  usbDescriptorStringDevice[] = { | ||||
| const PROGMEM int  usbDescriptorStringDevice[] = { | ||||
|     USB_STRING_DESCRIPTOR_HEADER(USB_CFG_DEVICE_NAME_LEN), | ||||
|     USB_CFG_DEVICE_NAME | ||||
| }; | ||||
|  | @ -108,7 +108,7 @@ PROGMEM int usbDescriptorStringSerialNumber[] = { | |||
| #if USB_CFG_DESCR_PROPS_DEVICE == 0 | ||||
| #undef USB_CFG_DESCR_PROPS_DEVICE | ||||
| #define USB_CFG_DESCR_PROPS_DEVICE  sizeof(usbDescriptorDevice) | ||||
| PROGMEM char usbDescriptorDevice[] = {    /* USB device descriptor */ | ||||
| const PROGMEM char usbDescriptorDevice[] = {    /* USB device descriptor */ | ||||
|     18,         /* sizeof(usbDescriptorDevice): length of descriptor in bytes */ | ||||
|     USBDESCR_DEVICE,        /* descriptor type */ | ||||
|     0x10, 0x01,             /* USB version supported */ | ||||
|  |  | |||
|  | @ -452,43 +452,43 @@ extern | |||
| #if !(USB_CFG_DESCR_PROPS_DEVICE & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| char usbDescriptorDevice[]; | ||||
| const char usbDescriptorDevice[]; | ||||
| 
 | ||||
| extern | ||||
| #if !(USB_CFG_DESCR_PROPS_CONFIGURATION & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| char usbDescriptorConfiguration[]; | ||||
| const char usbDescriptorConfiguration[]; | ||||
| 
 | ||||
| extern | ||||
| #if !(USB_CFG_DESCR_PROPS_HID_REPORT & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| char usbDescriptorHidReport[]; | ||||
| const char usbDescriptorHidReport[]; | ||||
| 
 | ||||
| extern | ||||
| #if !(USB_CFG_DESCR_PROPS_STRING_0 & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| char usbDescriptorString0[]; | ||||
| const char usbDescriptorString0[]; | ||||
| 
 | ||||
| extern | ||||
| #if !(USB_CFG_DESCR_PROPS_STRING_VENDOR & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| int usbDescriptorStringVendor[]; | ||||
| const int usbDescriptorStringVendor[]; | ||||
| 
 | ||||
| extern | ||||
| #if !(USB_CFG_DESCR_PROPS_STRING_PRODUCT & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| int usbDescriptorStringDevice[]; | ||||
| const int usbDescriptorStringDevice[]; | ||||
| 
 | ||||
| extern | ||||
| #if !(USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER & USB_PROP_IS_RAM) | ||||
| PROGMEM | ||||
| #endif | ||||
| int usbDescriptorStringSerialNumber[]; | ||||
| const int usbDescriptorStringSerialNumber[]; | ||||
| 
 | ||||
| #endif /* __ASSEMBLER__ */ | ||||
| 
 | ||||
|  |  | |||
|  | @ -35,6 +35,13 @@ static report_keyboard_t kbuf[KBUF_SIZE]; | |||
| static uint8_t kbuf_head = 0; | ||||
| static uint8_t kbuf_tail = 0; | ||||
| 
 | ||||
| typedef struct { | ||||
|         uint8_t modifier; | ||||
|         uint8_t reserved; | ||||
|         uint8_t keycode[6]; | ||||
| } keyboard_report_t; | ||||
| 
 | ||||
| static keyboard_report_t keyboard_report; // sent to PC
 | ||||
| 
 | ||||
| /* transfer keyboard report from buffer */ | ||||
| void vusb_transfer_keyboard(void) | ||||
|  | @ -168,8 +175,8 @@ usbRequest_t    *rq = (void *)data; | |||
|         if(rq->bRequest == USBRQ_HID_GET_REPORT){ | ||||
|             debug("GET_REPORT:"); | ||||
|             /* we only have one report type, so don't look at wValue */ | ||||
|             usbMsgPtr = (void *)keyboard_report; | ||||
|             return sizeof(*keyboard_report); | ||||
|             usbMsgPtr = (void *)&keyboard_report; | ||||
|             return sizeof(keyboard_report); | ||||
|         }else if(rq->bRequest == USBRQ_HID_GET_IDLE){ | ||||
|             debug("GET_IDLE: "); | ||||
|             //debug_hex(vusb_idle_rate);
 | ||||
|  | @ -232,7 +239,7 @@ uchar usbFunctionWrite(uchar *data, uchar len) | |||
|  * | ||||
|  * from an example in HID spec appendix | ||||
|  */ | ||||
| PROGMEM uchar keyboard_hid_report[] = { | ||||
| const PROGMEM uchar keyboard_hid_report[] = { | ||||
|     0x05, 0x01,          // Usage Page (Generic Desktop),
 | ||||
|     0x09, 0x06,          // Usage (Keyboard),
 | ||||
|     0xA1, 0x01,          // Collection (Application),
 | ||||
|  | @ -275,7 +282,7 @@ PROGMEM uchar keyboard_hid_report[] = { | |||
|  * http://www.keil.com/forum/15671/
 | ||||
|  * http://www.microsoft.com/whdc/device/input/wheel.mspx
 | ||||
|  */ | ||||
| PROGMEM uchar mouse_hid_report[] = { | ||||
| const PROGMEM uchar mouse_hid_report[] = { | ||||
|     /* mouse */ | ||||
|     0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
 | ||||
|     0x09, 0x02,                    // USAGE (Mouse)
 | ||||
|  | @ -358,7 +365,7 @@ PROGMEM uchar mouse_hid_report[] = { | |||
|  * contains: device, interface, HID and endpoint descriptors | ||||
|  */ | ||||
| #if USB_CFG_DESCR_PROPS_CONFIGURATION | ||||
| PROGMEM char usbDescriptorConfiguration[] = {    /* USB configuration descriptor */ | ||||
| const PROGMEM char usbDescriptorConfiguration[] = {    /* USB configuration descriptor */ | ||||
|     9,          /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */ | ||||
|     USBDESCR_CONFIG,    /* descriptor type */ | ||||
|     9 + (9 + 9 + 7) + (9 + 9 + 7), 0, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Stefan Mark
						Stefan Mark