реклама на сайте
подробности

 
 
> дескриптор репорта
sergey sva
сообщение Dec 20 2008, 17:53
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Смотрю пример hid из Keil,не понятно почему многие поля повторяются,
например HID_ReportSize(1), или HID_LogicalMin(0) ?

Код
/* HID Report Descriptor */
const BYTE HID_ReportDescriptor[] = {
  HID_UsagePageVendor(0x00),
  HID_Usage(0x01),
  HID_Collection(HID_Application),
    HID_UsagePage(HID_USAGE_PAGE_BUTTON),
    HID_UsageMin(1),
    HID_UsageMax(4),
    HID_LogicalMin(0),
    HID_LogicalMax(1),
    HID_ReportCount(4),
    HID_ReportSize(1),
    HID_Input(HID_Data | HID_Variable | HID_Absolute),
    HID_ReportCount(1),
    HID_ReportSize(4),
    HID_Input(HID_Constant),
    HID_UsagePage(HID_USAGE_PAGE_LED),
    HID_Usage(HID_USAGE_LED_GENERIC_INDICATOR),
    HID_LogicalMin(0),
    HID_LogicalMax(1),
    HID_ReportCount(8),
    HID_ReportSize(1),
    HID_Output(HID_Data | HID_Variable | HID_Absolute),
  HID_EndCollection,
};
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
sergey sva
сообщение Dec 21 2008, 12:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Подкорректировал дескриптор репорта, что бы передавал по 8бит и 8 полей.
При вызове readfile() прога зависает(в ПК),с старым дескриптором все работает.
Еще Не совсем пойму при вызове readfile в ПК где указывать Repord ID ? 0х75

Код
const BYTE HID_ReportDescriptor[] = {
0x06, 0x00, 0xFF,  //Usage_Page (Vendor Defined)
0x09, 0x01,        //Usage (I/O Device)
0xA1, 0x01,        //1, // Collection (Application)
0x85, 0x75,        // REPORT_ID
0x19, 0x01,        // Usage_Minimum
0x29, 0x01,        // Usage_Maximum
0x15, 0x00,        // Logical_Minimum (0)
0x25, 0xff,        // Logical_Maximum (255)
0x75, 0x08,        // Report_Size
0x95, 0x08,        // Report_Count
0x81, 0x02,        // Input (Data,Var,Abs)
0x19, 0x01,        // Usage_Minimum
0x29, 0x01,        // Usage_Maximum
0x91, 0x02,        // Output (Data,Var,Abs)
0xC0               // End_Collection
};


Сообщение отредактировал sergey sva - Dec 21 2008, 12:31
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 21 2008, 14:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Если кто с примеров от keil hid for at91sam7, разбирался, подскажите для отправки нескольких байт
что нужно изменить, кроме HID Report Descriptor ?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Dec 21 2008, 15:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Для передачи нескольких байт, нужно записать несколько раз байт в конечную точку?

Код
BOOL HID_GetReport (void) {

  /* ReportID = SetupPacket.wValue.WB.L; */
  switch (SetupPacket.wValue.WB.H) {
    case HID_REPORT_INPUT: {
  
for(i = 0; i < 2; i++){

      GetInReport();
      EP0Buf[0] = InReport;        ///??
    
                              }

                      
      
      break; }
    case HID_REPORT_OUTPUT:
      return (FALSE);          /* Not Supported */
    case HID_REPORT_FEATURE:
      /* EP0Buf[] = ...; */
      /* break; */
      return (FALSE);          /* Not Supported */
  }
  return (TRUE);
}


Скажите что нибуть smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 13:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016