⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb.c

📁 TI公司的CCS一些常用的函数库
💻 C
📖 第 1 页 / 共 5 页
字号:
int8 usb_gets(int8 endpoint, int8 * ptr, int8 max) {
   int8 i,len;

#IF USB_EP1_RX_ENABLE
   if (endpoint == 1) {
      while (usb_ep1_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep1_rx_status.len < max) {len=usb_ep1_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep1_rx_buffer[i];
         ptr++;
      }
      usb_ep1_rx_status.rx=0;
      usb_ep1_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP2_RX_ENABLE
   if (endpoint == 2) {
      while (usb_ep2_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep2_rx_status.len < max) {len=usb_ep2_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep2_rx_buffer[i];
         ptr++;
      }
      usb_ep2_rx_status.rx=0;
      usb_ep2_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP3_RX_ENABLE
   if (endpoint == 3) {
      while (usb_ep3_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep3_rx_status.len < max) {len=usb_ep3_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep3_rx_buffer[i];
         ptr++;
      }
      usb_ep3_rx_status.rx=0;
      usb_ep3_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP4_RX_ENABLE
   if (endpoint == 4) {
      while (usb_ep4_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep4_rx_status.len < max) {len=usb_ep4_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep4_rx_buffer[i];
         ptr++;
      }
      usb_ep4_rx_status.rx=0;
      usb_ep4_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP5_RX_ENABLE
   if (endpoint == 1) {
      while (usb_ep5_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep5_rx_status.len < max) {len=usb_ep5_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep5_rx_buffer[i];
         ptr++;
      }
      usb_ep5_rx_status.rx=0;
      usb_ep5_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP6_RX_ENABLE
   if (endpoint == 6) {
      while (usb_ep6_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep6_rx_status.len < max) {len=usb_ep6_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep6_rx_buffer[i];
         ptr++;
      }
      usb_ep6_rx_status.rx=0;
      usb_ep6_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP7_RX_ENABLE
   if (endpoint == 7) {
      while (usb_ep7_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep7_rx_status.len < max) {len=usb_ep7_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep7_rx_buffer[i];
         ptr++;
      }
      usb_ep7_rx_status.rx=0;
      usb_ep7_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP8_RX_ENABLE
   if (endpoint == 8) {
      while (usb_ep8_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep8_rx_status.len < max) {len=usb_ep8_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep8_rx_buffer[i];
         ptr++;
      }
      usb_ep8_rx_status.rx=0;
      usb_ep8_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP9_RX_ENABLE
   if (endpoint == 9) {
      while (usb_ep9_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep9_rx_status.len < max) {len=usb_ep9_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep9_rx_buffer[i];
         ptr++;
      }
      usb_ep9_rx_status.rx=0;
      usb_ep9_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP10_RX_ENABLE
   if (endpoint == 10) {
      while (usb_ep10_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep10_rx_status.len < max) {len=usb_ep10_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep10_rx_buffer[i];
         ptr++;
      }
      usb_ep10_rx_status.rx=0;
      usb_ep10_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP11_RX_ENABLE
   if (endpoint == 11) {
      while (usb_ep11_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep11_rx_status.len < max) {len=usb_ep11_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep11_rx_buffer[i];
         ptr++;
      }
      usb_ep11_rx_status.rx=0;
      usb_ep11_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP12_RX_ENABLE
   if (endpoint == 12) {
      while (usb_ep12_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep12_rx_status.len < max) {len=usb_ep12_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep12_rx_buffer[i];
         ptr++;
      }
      usb_ep12_rx_status.rx=0;
      usb_ep12_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP13_RX_ENABLE
   if (endpoint == 13) {
      while (usb_ep13_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep13_rx_status.len < max) {len=usb_ep13_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep13_rx_buffer[i];
         ptr++;
      }
      usb_ep13_rx_status.rx=0;
      usb_ep13_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP14_RX_ENABLE
   if (endpoint == 14) {
      while (usb_ep14_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep14_rx_status.len < max) {len=usb_ep14_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep14_rx_buffer[i];
         ptr++;
      }
      usb_ep14_rx_status.rx=0;
      usb_ep14_rx_status.ov=0;
      return(len);
   }
#ENDIF

#IF USB_EP15_RX_ENABLE
   if (endpoint == 1) {
      while (usb_ep15_rx_status.rx != 1) {}   //wait until data arrives
      if (usb_ep15_rx_status.len < max) {len=usb_ep15_rx_status.len;} else {len=max;}
      for (i=0;i<len;i++) {
         *ptr=usb_ep15_rx_buffer[i];
         ptr++;
      }
      usb_ep15_rx_status.rx=0;
      usb_ep15_rx_status.ov=0;
      return(len);
   }
#ENDIF
   return(0);
}

/// END User Functions


/// BEGIN USB Token, standard and HID request handler (part of ISR)

/**************************************************************
/* usb_token_reset()
/*
/* Output: modifies global variables USB_Interface[], in[], String_ptr,
/*         String_end, USB_status_device, USB_dev_req
/*
/* Summary: Resets the token handler to initial (unconfigured) state.
/***************************************************************/
void usb_token_reset() {
   int i;

   for (i=0;i<USB_NUM_INTERFACES;i++) {
      USB_Interface[i]=0;   //reset each interface to default
      #IF USB_BOOT_PROTOCOL
       hid_protocol[i]=1;
      #endif
   }

   for (i=0;i<USB_EP0_RX_SIZE;i++) {
      usb_ep0_rx_buffer[i]=0;
   }
   usb_ep0_rx_status.rx=0;
   usb_ep0_rx_status.ov=0;


#if USB_EP1_RX_SIZE
   for (i=0;i<USB_EP1_RX_SIZE;i++) {
      usb_ep1_rx_buffer[i]=0;
   }
   usb_ep1_rx_status.rx=0;
   usb_ep1_rx_status.ov=0;
#endif

#if USB_EP2_RX_SIZE
   for (i=0;i<USB_EP2_RX_SIZE;i++) {
      usb_ep2_rx_buffer[i]=0;
   }
   usb_ep2_rx_status.rx=0;
   usb_ep2_rx_status.ov=0;
#endif

#if USB_EP3_RX_SIZE
   for (i=0;i<USB_EP3_RX_SIZE;i++) {
      usb_ep3_rx_buffer[i]=0;
   }
   usb_ep3_rx_status.rx=0;
   usb_ep3_rx_status.ov=0;
#endif

#if USB_EP4_RX_SIZE
   for (i=0;i<USB_EP4_RX_SIZE;i++) {
      usb_ep4_rx_buffer[i]=0;
   }
   usb_ep4_rx_status.rx=0;
   usb_ep4_rx_status.ov=0;
#endif

#if USB_EP5_RX_SIZE
   for (i=0;i<USB_EP5_RX_SIZE;i++) {
      usb_ep5_rx_buffer[i]=0;
   }
   usb_ep5_rx_status.rx=0;
   usb_ep5_rx_status.ov=0;
#endif

#if USB_EP6_RX_SIZE
   for (i=0;i<USB_EP6_RX_SIZE;i++) {
      usb_ep6_rx_buffer[i]=0;
   }
   usb_ep6_rx_status.rx=0;
   usb_ep6_rx_status.ov=0;
#endif

#if USB_EP7_RX_SIZE
   for (i=0;i<USB_EP7_RX_SIZE;i++) {
      usb_ep7_rx_buffer[i]=0;
   }
   usb_ep7_rx_status.rx=0;
   usb_ep7_rx_status.ov=0;
#endif

#if USB_EP8_RX_SIZE
   for (i=0;i<USB_EP8_RX_SIZE;i++) {
      usb_ep8_rx_buffer[i]=0;
   }
   usb_ep8_rx_status.rx=0;
   usb_ep8_rx_status.ov=0;
#endif

#if USB_EP9_RX_SIZE
   for (i=0;i<USB_EP9_RX_SIZE;i++) {
      usb_ep9_rx_buffer[i]=0;
   }
   usb_ep9_rx_status.rx=0;
   usb_ep9_rx_status.ov=0;
#endif

#if USB_EP10_RX_SIZE
   for (i=0;i<USB_EP10_RX_SIZE;i++) {
      usb_ep10_rx_buffer[i]=0;
   }
   usb_ep10_rx_status.rx=0;
   usb_ep10_rx_status.ov=0;
#endif

#if USB_EP11_RX_SIZE
   for (i=0;i<USB_EP11_RX_SIZE;i++) {
      usb_ep11_rx_buffer[i]=0;
   }
   usb_ep11_rx_status.rx=0;
   usb_ep11_rx_status.ov=0;
#endif

#if USB_EP12_RX_SIZE
   for (i=0;i<USB_EP12_RX_SIZE;i++) {
      usb_ep12_rx_buffer[i]=0;
   }
   usb_ep12_rx_status.rx=0;
   usb_ep12_rx_status.ov=0;
#endif

#if USB_EP13_RX_SIZE
   for (i=0;i<USB_EP13_RX_SIZE;i++) {
      usb_ep13_rx_buffer[i]=0;
   }
   usb_ep13_rx_status.rx=0;
   usb_ep13_rx_status.ov=0;
#endif

#if USB_EP14_RX_SIZE
   for (i=0;i<USB_EP14_RX_SIZE;i++) {
      usb_ep14_rx_buffer[i]=0;
   }
   usb_ep14_rx_status.rx=0;
   usb_ep14_rx_status.ov=0;
#endif

#if USB_EP15_RX_SIZE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -