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

📄 xxgchap9.lst

📁 200元买来的D12开发资料,包括上位机驱动和应用程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 182   2                      if (ControlData.DeviceRequest.wIndex & (unsigned char)USB_ENDPOINT_DIRECTION_MASK)
 183   2                              // clear TX stall for IN on EPn. 
 184   2                              D12_SetEndpointStatus(endp*2 + 1, 0);
 185   2                      else
 186   2                              // clear RX stall for OUT on EPn. 
 187   2                              D12_SetEndpointStatus(endp*2, 0);
 188   2                      single_transmit(0, 0);
 189   2              } else
 190   1                      stall_ep0();
 191   1      }
 192          
 193          void set_feature(void)
 194          {
 195   1              unsigned char endp;
 196   1              unsigned char bRecipient = ControlData.DeviceRequest.bmRequestType & USB_RECIPIENT;
 197   1      
 198   1              if (bRecipient == USB_RECIPIENT_DEVICE
 199   1                      && ControlData.DeviceRequest.wValue == USB_FEATURE_REMOTE_WAKEUP) {
 200   2                      DISABLE;
 201   2                      bEPPflags.bits.remote_wakeup = 1;
 202   2                      ENABLE;
 203   2                      single_transmit(0, 0);
 204   2              }
 205   1              else if (bRecipient == USB_RECIPIENT_ENDPOINT
 206   1                      && ControlData.DeviceRequest.wValue == USB_FEATURE_ENDPOINT_STALL) {
 207   2                      endp = (unsigned char)(ControlData.DeviceRequest.wIndex & MAX_ENDPOINTS);
 208   2                      if (ControlData.DeviceRequest.wIndex & (unsigned char)USB_ENDPOINT_DIRECTION_MASK)
 209   2                              // clear TX stall for IN on EPn. 
 210   2                              D12_SetEndpointStatus(endp*2 + 1, 1);
 211   2                      else
 212   2                              // clear RX stall for OUT on EPn. 
 213   2                              D12_SetEndpointStatus(endp*2, 1);
 214   2                      single_transmit(0, 0);
 215   2              } else
 216   1                      stall_ep0();
 217   1      }
 218          
 219          void set_address(void)
 220          {
 221   1              D12_SetAddressEnable((unsigned char)(ControlData.DeviceRequest.wValue &
 222   1                      DEVICE_ADDRESS_MASK), 1);
 223   1              single_transmit(0, 0);
 224   1      }
 225          
 226          void get_descriptor(void)
 227          {
 228   1              unsigned char bDescriptor = MSB(ControlData.DeviceRequest.wValue);
 229   1      
 230   1              if (bDescriptor == USB_DEVICE_DESCRIPTOR_TYPE) {
 231   2                      code_transmit((unsigned char code *)&DeviceDescr, sizeof(USB_DEVICE_DESCRIPTOR));
 232   2              } 
 233   1              else if (bDescriptor == USB_CONFIGURATION_DESCRIPTOR_TYPE) {
 234   2                      code_transmit((unsigned char code *)&ConfigDescr, CONFIG_DESCRIPTOR_LENGTH);
 235   2              } 
 236   1              else
 237   1                      stall_ep0();
 238   1      }
 239          
 240          void get_configuration(void)
 241          {
C51 COMPILER V7.02b   XXGCHAP9                                                             03/17/2005 23:11:51 PAGE 5   

 242   1              unsigned char c = bEPPflags.bits.configuration;
 243   1      
 244   1              single_transmit(&c, 1);
 245   1      }
 246          
 247          void set_configuration(void)
 248          {
 249   1              if (ControlData.DeviceRequest.wValue == 0) {
 250   2                      //* put device in unconfigured state 
 251   2                      single_transmit(0, 0);
 252   2                      DISABLE;
 253   2                      bEPPflags.bits.configuration = 0;
 254   2                      ENABLE;
 255   2                      init_unconfig();
 256   2              } else if (ControlData.DeviceRequest.wValue == 1) {
 257   2                      // Configure device 
 258   2                      single_transmit(0, 0);
 259   2      
 260   2                      init_unconfig();
 261   2                      init_config();
 262   2                      
 263   2                      DISABLE;
 264   2                      bEPPflags.bits.configuration = 1;
 265   2                      ENABLE;
 266   2              } else
 267   1                      stall_ep0();
 268   1      }
 269          
 270          void get_interface(void)
 271          {
 272   1              unsigned char txdat = 0;        // Only/Current interface = 0 
 273   1              single_transmit(&txdat, 1);
 274   1      }
 275          
 276          void set_interface(void)
 277          {
 278   1              if (ControlData.DeviceRequest.wValue == 0 && ControlData.DeviceRequest.wIndex == 0)
 279   1                      single_transmit(0, 0);
 280   1              else
 281   1                      stall_ep0();
 282   1      }
C51 COMPILER V7.02b   XXGCHAP9                                                             03/17/2005 23:11:51 PAGE 6   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
_IO_REQUEST. . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  6
  uAddressL. . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
  bAddressH. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  uSize. . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  bCommand . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
ULONG. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
stall_ep0. . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
USB_STRING_DESCRIPTOR. . . . . . . . .  TYPEDEF  -----  STRUCT   -----  3
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bString. . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0002H  1
InterfaceDescr . . . . . . . . . . . .  PUBLIC   CODE   STRUCT   001BH  9
USB_CONFIGURATION_DESCRIPTOR . . . . .  TYPEDEF  -----  STRUCT   -----  9
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  wTotalLength . . . . . . . . . . . .  MEMBER   -----  U_INT    0002H  2
  bNumInterfaces . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  bConfigurationValue. . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  iConfiguration . . . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  bmAttributes . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0007H  1
  MaxPower . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0008H  1
USB_HUB_DESCRIPTOR . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  71
  bDescriptorLength. . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bNumberOfPorts . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  wHubCharacteristics. . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  bPowerOnToPowerGood. . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  bHubControlCurrent . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  bRemoveAndPowerMask. . . . . . . . .  MEMBER   -----  ARRAY    0007H  64
PUSB_POWER_DESCRIPTOR. . . . . . . . .  TYPEDEF  -----  PTR      -----  3
init_config. . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
_D12_SelectEndpoint. . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
USB_ENDPOINT_DESCRIPTOR. . . . . . . .  TYPEDEF  -----  STRUCT   -----  7
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bEndpointAddress . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  bmAttributes . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0003H  1
  wMaxPacketSize . . . . . . . . . . .  MEMBER   -----  U_INT    0004H  2
  bInterval. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
PUSB_INTERFACE_DESCRIPTOR. . . . . . .  TYPEDEF  -----  PTR      -----  3
_epp_flags . . . . . . . . . . . . . .  * TAG *  -----  UNION    -----  2
  bits . . . . . . . . . . . . . . . .  MEMBER   -----  STRUCT   0000H  2
  value. . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
set_address. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
set_feature. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  endp . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  bRecipient . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
_USB_POWER_DESCRIPTOR. . . . . . . . .  * TAG *  -----  STRUCT   -----  18
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bCapabilitiesFlags . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  EventNotification. . . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  D1LatencyTime. . . . . . . . . . . .  MEMBER   -----  U_INT    0005H  2
  D2LatencyTime. . . . . . . . . . . .  MEMBER   -----  U_INT    0007H  2
C51 COMPILER V7.02b   XXGCHAP9                                                             03/17/2005 23:11:51 PAGE 7   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  D3LatencyTime. . . . . . . . . . . .  MEMBER   -----  U_INT    0009H  2
  PowerUnit. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000BH  1
  D0PowerConsumption . . . . . . . . .  MEMBER   -----  U_INT    000CH  2
  D1PowerConsumption . . . . . . . . .  MEMBER   -----  U_INT    000EH  2
  D2PowerConsumption . . . . . . . . .  MEMBER   -----  U_INT    0010H  2
get_configuration. . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  c. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
_USB_INTERFACE_DESCRIPTOR. . . . . . .  * TAG *  -----  STRUCT   -----  9
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bInterfaceNumber . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  bAlternateSetting. . . . . . . . . .  MEMBER   -----  U_CHAR   0003H  1
  bNumEndpoints. . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  bInterfaceClass. . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  bInterfaceSubClass . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  bInterfaceProtocol . . . . . . . . .  MEMBER   -----  U_CHAR   0007H  1
  iInterface . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0008H  1
IO_REQUEST . . . . . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  6
  uAddressL. . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
  bAddressH. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  uSize. . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  bCommand . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
_D12_SetAddressEnable. . . . . . . . .  EXTERN   CODE   PROC     -----  -----
BOOL . . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1

⌨️ 快捷键说明

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