yava-auto 0 23 ноября, 2011 Опубликовано 23 ноября, 2011 · Жалоба Здравствуйте! Делаю пример из 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
galjoen 0 24 ноября, 2011 Опубликовано 24 ноября, 2011 · Жалоба Вопрос, нужно ли для каждой функции создавать endpoint, или определить для себя 255 (или более) типов пакетов и обмениваться данными через готовый endpoint? Создавать endpoint не нужно. А лучше сначала почитать документацию по USB, HID и т.д., она ведь сейчас доступна - а уже потом задавать вопросы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться