Перейти к содержанию
    

USB HID PIC18F4550, все работает, что я делаю не так.http://electronix.ru/forum/style_images/1/folder_editor_images/rte-emoticon.gif

Здравствуйте!

Делаю пример из Microchip App Library, Device - HID - Custom Demos

Как я правильно понял, создается на стороне РС и устройства некий pipe, через который происходит обмен по 64 байта в одном пакете.

Разбор пакетов происходит по первому байту.

 

        switch (ReceivedDataBuffer[0])                //Look at the data the host sent, to see what kind of application specific command it sent.
        {case 0x80:  //Toggle LEDs command
           mLED_5_Toggle();
break;
            case 0x81:  //Get push button state
                  ToSendDataBuffer[0] = 0x81;                //Echo back to the host PC the command we are fulfilling in the first byte.  In this case, the Get Pushbutton State command.
                  if(sw3 == 1)            //pushbutton not pressed, pull up resistor on circuit board is pulling the PORT pin high
                  {ToSendDataBuffer[1] = 0x01;}
                  else{ToSendDataBuffer[1] = 0x00;}
                  if(!HIDTxHandleBusy(USBInHandle)){
                      USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64); }
            break;

            case 0x37: {
                WORD_VAL w;
                if(!HIDTxHandleBusy(USBInHandle)) {
                  ToSendDataBuffer[0] = 0x37; 
                  ToSendDataBuffer[1] = 55;      
                  ToSendDataBuffer[2] = 12;      
                  USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64);
                } //if
            }
            break;
          
            default:
            break;

        }// switch(ReceivedDataBuffer[0])

 

Мне собственно это и нужно. Устройство должно читать кнопки, моргать светодиодами, читать АЦП и тд.

 

Вопрос, нужно ли для каждой функции создавать endpoint, или определить для себя 255 (или более) типов пакетов и обмениваться данными через готовый endpoint?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос, нужно ли для каждой функции создавать endpoint, или определить для себя 255 (или более) типов пакетов и обмениваться данными через готовый endpoint?

Создавать endpoint не нужно.

А лучше сначала почитать документацию по USB, HID и т.д., она ведь сейчас доступна - а уже потом задавать вопросы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...