Jump to content

    
Sign in to follow this  
yava-auto

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

Recommended Posts

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

Делаю пример из 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?

Share this post


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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this