Ynt: USB HID hakkında

Başlatan yamak, 27 Kasım 2012, 23:59:41

yamak

Bu HID sınıfı hakkında bi kaç sorum olacktı. Şimdi HID iletişim yapılacağı zaman ilk olarak neler oluyo. Keil ın örneklerini inceliyorum bi  "usbd_hid_get_report_trigger" diye bi fonksiyon var bu fonksiyonla eğer butonlardan herhangi birine basmışsam hangi butona basıldığını gönderiyo heralde.Ama bi de "usbd_hid_get_report" diye bi fonksiyon var bu fonksiyon şu şekilde.
int usbd_hid_get_report (U8 rtype, U8 rid, U8 *buf, U8 req) {

  switch (rtype) {
    case HID_REPORT_INPUT:
      switch (rid) {
         case 0:
          switch (req) {
            case USBD_HID_REQ_EP_CTRL:
            case USBD_HID_REQ_PERIOD_UPDATE:
              *buf = (((LPC_GPIO1->FIOPIN ^ (1 << 20)) >> 20) & 0x01) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 23)) >> 22) & 0x02) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 24)) >> 22) & 0x04) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 25)) >> 22) & 0x08) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 26)) >> 22) & 0x10) ;            
              return (1);
            case USBD_HID_REQ_EP_INT:
              break;
          }
           break;
      }
      break;
    case HID_REPORT_FEATURE:
      buf[0] = feat;
      return (1);
  }
  return (0);
}

bu fonksiyon başka bi .h dosyasının içinden extern ile bulunup kullanılıyo. Şimdi böyle bi fonksiyona neden ihtiyaç duyuluyo. ve burada buf adresine değer atamayı neden yapıyo.Bi de bu report muhabbeti tam olarak ne oluyo?

mesaj birleştirme:: 28 Kasım 2012, 16:15:13

Arkdadaşlar bu konuda bi fikri olan yok mu?HID'de data alış verişi tam olarak nasıl oluyo. Bu rapor olayı tam olarak nedir?