mình đang làm cái máy ghi âm với pic18f4550 nhưng vướng phải khó khăn khi report gói nhiều byte lên host. trong file usb_desc_hid.h mình đã khai báo:
const char USB_CLASS_SPECIFIC_DESC[] = {
6, 0, 0xff, // Usage Page = Vendor Defined
0x09, 0x01, // Usage = Phone
0xa1, 1, // Collection = Application
0x19, 1, // Usage minimum
0x29, 8, // Usage maximum
0x15, 0x80, // Logical minimum (-128)
0x25, 0x7F, // Logical maximum (127)
0x75, 8, // Report size = 8 (bits)
0x95, 64, // Report count
0x81, 2, // Input (Data, Var, Abs)
0x19, 1, // Usage minimum
0x29, 8, // Usage maximum
0x75, 8, // Report size = 8 (bits)
0x95, 2, // Report count = 16 bits (2 bytes)
0x91, 2, // Output (Data, Var, Abs)
0xc0 // End Collection
};
trong hàm main mình gửi gói :
a=usb_put_packet(1, out_data, 64, USB_DTS_TOGGLE);
thì bị reset pipe liên tục, nếu gửi các gói 2,4,8 byte thì không có lỗi gì. HID ngắt 250ms, dùng USB Monitor để theo dõi. Mông các cao nhân PIC chỉ cách khắc phục. thanks.
const char USB_CLASS_SPECIFIC_DESC[] = {
6, 0, 0xff, // Usage Page = Vendor Defined
0x09, 0x01, // Usage = Phone
0xa1, 1, // Collection = Application
0x19, 1, // Usage minimum
0x29, 8, // Usage maximum
0x15, 0x80, // Logical minimum (-128)
0x25, 0x7F, // Logical maximum (127)
0x75, 8, // Report size = 8 (bits)
0x95, 64, // Report count
0x81, 2, // Input (Data, Var, Abs)
0x19, 1, // Usage minimum
0x29, 8, // Usage maximum
0x75, 8, // Report size = 8 (bits)
0x95, 2, // Report count = 16 bits (2 bytes)
0x91, 2, // Output (Data, Var, Abs)
0xc0 // End Collection
};
trong hàm main mình gửi gói :
a=usb_put_packet(1, out_data, 64, USB_DTS_TOGGLE);
thì bị reset pipe liên tục, nếu gửi các gói 2,4,8 byte thì không có lỗi gì. HID ngắt 250ms, dùng USB Monitor để theo dõi. Mông các cao nhân PIC chỉ cách khắc phục. thanks.
Comment