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

📄 usb.lst

📁 HardDiskUSBconnectsourcecode
💻 LST
📖 第 1 页 / 共 4 页
字号:
 704   5                                              Usb_clear_TXCMPL_bit();
 705   5                                              break;
 706   5                                      }
C51 COMPILER V8.05a   USB                                                                  05/22/2009 15:28:38 PAGE 13  

 707   4                                      case 0x01:
 708   4                                      {
 709   5      
 710   5                                              Usb_sel_ep(1);
 711   5                                              Usb_clear_STALLRQ_bit();
 712   5                                              Usb_set_EP1RST();
 713   5                                              Usb_clr_EP1RST();
 714   5                                              ep_status[1] =0x00; 
 715   5                                              Usb_sel_ep(0);
 716   5                                              Usb_clr_rxsetup_bit();
 717   5                                              Usb_set_TXRDY_bit();    
 718   5                                              while (!(Usb_send_data_complete()));
 719   5                                              Usb_clear_TXCMPL_bit();
 720   5                                              break;
 721   5                                      }
 722   4                                      case 0x02:
 723   4                                      {
 724   5      
 725   5                                              Usb_sel_ep(2);
 726   5                                              Usb_clear_STALLRQ_bit();
 727   5                                              Usb_set_EP2RST();
 728   5                                              Usb_clr_EP2RST();
 729   5                                              ep_status[2] = 0x00;
 730   5                                              Usb_sel_ep(0);
 731   5                                              Usb_clr_rxsetup_bit();
 732   5                                              Usb_set_TXRDY_bit();    
 733   5                                              while (!(Usb_send_data_complete()));
 734   5                                              Usb_clear_TXCMPL_bit();
 735   5                                              break;
 736   5                                      }
 737   4                                      default:
 738   4                                      {
 739   5                                              Usb_clr_rxsetup_bit();
 740   5                                              Usb_set_STALLRQ_bit();
 741   5                                              while (!(Usb_stall_sent_complete()));
 742   5                                              Usb_clear_STALLRQ_bit();
 743   5                                              break;
 744   5                                      }
 745   4                              }
 746   3                      }
 747   2              }
 748   1      
 749   1      }
 750          
 751          /**************************************************************************
 752           *                                                                                                        
             -                         
 753           *  Function Name:usb_set_feature                                                                         
             -      
 754           *                                                                                                        
             -                  
 755           *  Descriptions:                                                       
 756           *                                                                        
 757           *  Arguments:                                                           
 758           *                                                                       
 759           *  Returns: None                                                         
 760           *                                          
 761           **************************************************************************/
 762          void usb_set_feature (void)
 763          {
 764   1      
 765   1              
C51 COMPILER V8.05a   USB                                                                  05/22/2009 15:28:38 PAGE 14  

 766   1              if (UsbCtrlCmd.bmRequestType == 0x00)
 767   1              {
 768   2                      Usb_clr_rxsetup_bit();
 769   2                      Usb_set_STALLRQ_bit();
 770   2                      while (!(Usb_stall_sent_complete()));
 771   2                              Usb_clear_STALLRQ_bit();
 772   2              }
 773   1              if (UsbCtrlCmd.bmRequestType == 0x01)
 774   1              {
 775   2      
 776   2                      Usb_clr_rxsetup_bit();
 777   2                      Usb_set_STALLRQ_bit();
 778   2                      while (!(Usb_stall_sent_complete()));
 779   2                              Usb_clear_STALLRQ_bit();
 780   2              }
 781   1              
 782   1      
 783   1              if (UsbCtrlCmd.bmRequestType == 0x02)
 784   1              {
 785   2      
 786   2                      if ((UsbCtrlCmd.wValue&0xff) == 0x00)/*feature selector*/
 787   2                      {
 788   3      
 789   3                              
 790   3                              switch (UsbCtrlCmd.wIndex & 0x7f) // check wIndex 
 791   3                              {
 792   4                                      case 0x01:
 793   4                                      {
 794   5                                              Usb_sel_ep(1);
 795   5                                              Usb_set_STALLRQ_bit();
 796   5                                              Usb_sel_ep(0);
 797   5                                              ep_status[1] = 0x01;
 798   5                                              Usb_clr_rxsetup_bit();
 799   5                                              Usb_set_TXRDY_bit();
 800   5                                              while (!(Usb_send_data_complete()));
 801   5                                                      Usb_clear_TXCMPL_bit();
 802   5                                              break;
 803   5                                      }
 804   4                                      case 0x02:
 805   4                                      {
 806   5                                              Usb_sel_ep(2);
 807   5                                              Usb_set_STALLRQ_bit();
 808   5                                              Usb_sel_ep(0);
 809   5                                              ep_status[2] = 0x01;
 810   5                                              Usb_clr_rxsetup_bit();
 811   5                                              Usb_set_TXRDY_bit();
 812   5                                              while (!(Usb_send_data_complete()));
 813   5                                                      Usb_clear_TXCMPL_bit();
 814   5                                              break;
 815   5                                      }
 816   4                                      default:
 817   4                                      {
 818   5               
 819   5                                              break;
 820   5                                      }
 821   4                              }
 822   3                      }
 823   2              }
 824   1      }
 825          
 826          /**************************************************************************
 827           *                                                                                                        
C51 COMPILER V8.05a   USB                                                                  05/22/2009 15:28:38 PAGE 15  

             -                         
 828           *  Function Name:usb_get_status                                                                          
             -     
 829           *                                                                                                        
             -                  
 830           *  Descriptions:                                                       
 831           *                                                                        
 832           *  Arguments:                                                           
 833           *                                                                       
 834           *  Returns: None                                                         
 835           *                                          
 836           **************************************************************************/
 837          void usb_get_status (void)
 838          {
 839   1      
 840   1      
 841   1        UINT8 wIndex;
 842   1        Usb_clr_rxsetup_bit();
 843   1        Usb_set_DIR_bit();
 844   1        switch(UsbCtrlCmd.bmRequestType) 
 845   1        {
 846   2          case 0x80:
 847   2          {
 848   3            UEPDATX = 0x01;
 849   3            break;
 850   3          }
 851   2          case 0x81:
 852   2          {
 853   3            
 854   3              UEPDATX = 0x00;
 855   3            break;
 856   3          }
 857   2          case 0x82:
 858   2          {
 859   3            wIndex = UsbCtrlCmd.wIndex & 0x7f;
 860   3              UEPDATX = ep_status[wIndex];
 861   3            break;
 862   3          }
 863   2        }
 864   1        UEPDATX = 0x00;
 865   1        Usb_set_TXRDY_bit();
 866   1        while ((!(Usb_send_data_complete())) || (Usb_setup_packet_receive()));
 867   1        Usb_clear_TXCMPL_bit();
 868   1        while ((!(Usb_receive_out_data())) || (Usb_setup_packet_receive()));
 869   1       Usb_clear_DIR_bit();                  
 870   1        Usb_clear_RXOUTB0_bit();
 871   1        
 872   1      }
 873          
 874          /**************************************************************************
 875           *                                                                                                        
             -                         
 876           *  Function Name:hid_set_idle                                                                            
             -  
 877           *                                                                                                        
             -                  
 878           *  Descriptions:                                                       
 879           *                                                                        
 880           *  Arguments:                                                           
 881           *                                                                       
 882           *  Returns: None                                                         
 883           *                                          
C51 COMPILER V8.05a   USB                                                                  05/22/2009 15:28:38 PAGE 16  

 884           **************************************************************************/
 885          void hid_set_idle(void)
 886          {
 887   1      
 888   1      
 889   1              Usb_clear_DIR_bit();
 890   1              Usb_clr_rxsetup_bit();
 891   1              Usb_set_TXRDY_bit();
 892   1              while (!(Usb_send_data_complete()));
 893   1              Usb_clear_TXCMPL_bit();
 894   1      }
 895          
 896          /**************************************************************************
 897           *                                                                                                        
             -                         
 898           *  Function Name:usb_get_max_lun                                                                         
             -     
 899           *                                                                                                        
             -                  
 900           *  Descriptions:                                                       
 901           *                                                                        
 902           *  Arguments:                                                           
 903           *                                                                       
 904           *  Returns: None                                                         
 905           *                                          
 906           **************************************************************************/
 907          void usb_get_max_lun(void)
 908          {
 909   1      
 910   1              Usb_clr_rxsetup_bit();
 911   1              Usb_set_DIR_bit();
 912   1              UEPDATX = 0x00;
 913   1               Usb_set_TXRDY_bit();
 914   1              while ((!(Usb_send_data_complete())) || (Usb_setup_packet_receive()));
 915   1              Usb_clear_TXCMPL_bit();
 916   1              while ((!(Usb_receive_out_data())) || (Usb_setup_packet_receive()));
 917   1              Usb_clear_DIR_bit();                  
 918   1              Usb_clear_RXOUTB0_bit();
 919   1      
 920   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1263    ----
   CONSTANT SIZE    =    313    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =      3    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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