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

📄 halusbhif.lst

📁 威望公司MP3 + USB MCU 的参考软件
💻 LST
字号:
C51 COMPILER V8.01   HALUSBHIF                                                             04/17/2008 09:46:28 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE HALUSBHIF
OBJECT MODULE PLACED IN .\Debug\halusbhif.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE usbhost\halusbhif.c LARGE OPTIMIZE(9,SIZE) NOINTPROMOTE INCDIR(.\common;.\e
                    -2prom;.\file;.\fmtx;.\ir;.\keyboard;.\lcm;.\led;.\main;.\matrixkey;.\mp3ctrl;.\sd;.\usbhost;.\include;.\lib) DEBUG OBJEC
                    -TEXTEND PRINT(.\Debug\halusbhif.lst) OBJECT(.\Debug\halusbhif.obj)

line level    source

   1          /****************************************************************
   2          *                      Viaon Technology (Suzhou) Co.,Ltd
   3          *
   4          *    Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
   5          *                    All rights reserved.
   6          *
   7          *
   8          * Filename:             halusbif.c
   9          *
  10          * Programmer:           Greg 
  11          *
  12          * Created:              1/2/2008
  13          *
  14          * Description:          public functions 
  15          *              
  16          *        
  17          * Change History (most recent first):   2008.1.2
  18          ****************************************************************/
  19          //This file is the interface for usb host module.
  20          
  21          #include "utiltypedef.h"
  22          #include "va4010reg.h"
  23          #include "common.h"
  24          #include "halusbhost.h"
  25          #include "halscsi.h"
  26          
  27          #if 1
  28          ///////////////////////////////////////////////////////////////////////////////////////////
  29          #if 1
  30          BYTE halUsbChkReg(void)
  31          {
  32   1          BYTE data ret = FALSE;
  33   1       
  34   1          if(Ualarm & 0x04){ // device attachment detected
  35   2              ret = TRUE;
  36   2          }
  37   1          Ualarm = Ualarm;
  38   1          return ret;
  39   1      }
  40          #endif
  41          
  42          BYTE halUsbCheck(void)
  43          {
  44   1              BYTE data ret = FALSE;
  45   1      
  46   1              SieCtrl = 0x03;  // apply bus power & reset SIE
  47   1              DelayUs(200);
  48   1              SieCtrl = 0x09;  // enable SOF, otherwise device will sleep 
  49   1              TxEpnum = 0x00;
  50   1              TxAddr = 0x00;
  51   1              SieStat0 = INT_CLEAR;
  52   1              SieStat1 = INT_CLEAR;
  53   1              Alarm = INT_CLEAR;
C51 COMPILER V8.01   HALUSBHIF                                                             04/17/2008 09:46:28 PAGE 2   

  54   1              Mp3Stat = INT_CLEAR;
  55   1              AlarmEn = 0x02;         
  56   1              Ualarm = INT_CLEAR;
  57   1      
  58   1              if(Ualarm & 0x04){      // device attachment detected
  59   2                      //Ualarm = Ualarm; //clear status
  60   2                      ret = TRUE;
  61   2              }
  62   1      
  63   1              //DelayMs(200);
  64   1              //UartOutText("-I-: halUsbCheck() \r\n");
  65   1              
  66   1              return ret;
  67   1      }
  68          
  69          BYTE halUsbInit(void)
  70          {
  71   1              BYTE data ret = FALSE;
  72   1              
  73   1              if(halUsbCheck()){      // device attachment detected
  74   2                              Ualarm = INT_CLEAR;
  75   2                              if(Ualarm & 0x04){
  76   3                                      DelayMs(100);                              // wait power stable
  77   3                                      Ualarm = INT_CLEAR;
  78   3                                      SieCtrl = 0x19; // set attached status
  79   3                                      DelayMs(200);                             // wait more....
  80   3      
  81   3                                      ret = TRUE;
  82   3                                      UartOutText("USB device attatched \r\n");
  83   3                              }
  84   2              }
  85   1      
  86   1              return ret;
  87   1      }
  88          #else
              BYTE halUsbCheck(void)
              {
                  BYTE ret = FALSE;
               
                  if(Ualarm & 0x04){ // device attachment detected
                      ret = TRUE;
                  }
                  Ualarm = Ualarm;
                  return ret;
              }
              
              BYTE halUsbInit(void)
              {
                  BYTE ret = FALSE;
               
                  SieCtrl = 0x03;  // apply bus power & reset SIE
                  DelayUs(100);
                  SieCtrl = 0x09;  // enable SOF, otherwise device will sleep 
                  TxEpnum = 0x00;
                  TxAddr = 0x00;
                  SieStat0 = INT_CLEAR;
                  SieStat1 = INT_CLEAR;
                  Alarm = INT_CLEAR;
                  Mp3Stat = INT_CLEAR;
                  AlarmEn = 0x02; 
                
                  Ualarm = INT_CLEAR;
C51 COMPILER V8.01   HALUSBHIF                                                             04/17/2008 09:46:28 PAGE 3   

                  if(Ualarm & 0x04){
                      DelayMs(100);       // wait power stable
                      Ualarm = INT_CLEAR;
                      SieCtrl = 0x19; // set attached status
                      DelayMs(200);      // wait more....
               
                      ret = TRUE;
                      UartOutText("USB device attatched \r\n");
                  }
                  return ret;
              }
              
              
              #endif
 130          
 131          //Before call this function to enumerate the usb-disk, 
 132          //the halUsbCheck() should be called to check the attachment.
 133          BYTE halUsbEnum(void)
 134          {
 135   1              //_halUsbInit();
 136   1               
 137   1              _halUsbReset(); // bus reset
 138   1              
 139   1              if(halUsbDevEnum() == FALSE){
 140   2                      UartOutText("USB Enumerate FAIL \r\n");                 
 141   2                      return FALSE;
 142   2              }
 143   1                      UartOutText("USB Enumerate OK \r\n");
 144   1                      
 145   1      //      if(EnumMassDev()){
 146   1              EnumMassDev();
 147   1              UartOutText("MSC Enumerate OK \r\n");
 148   1      //      }else{
 149   1      //              return FALSE;
 150   1      //      }
 151   1              
 152   1              return TRUE;
 153   1      }
 154          
 155          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    148    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   IDATA SIZE       =   ----    ----
   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 + -