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

📄 common.lst

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


C51 COMPILER V8.01, COMPILATION OF MODULE COMMON
OBJECT MODULE PLACED IN .\Debug\common.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE common\common.c LARGE OPTIMIZE(9,SIZE) REGFILE(.\Debug\VA4010_SDK_V2.ORC) B
                    -ROWSE NOINTPROMOTE INCDIR(.\common;.\e2prom;.\file;.\fmtx;.\ir;.\keyboard;.\lcm;.\led;.\main;.\matrixkey;.\mp3ctrl;.\sd;
                    -.\usbhost;.\include;.\lib) DEBUG OBJECTEXTEND PRINT(.\Debug\common.lst) OBJECT(.\Debug\common.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:             common.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          //#include <intrins.h>
  20          
  21          #include "utiltypedef.h"
  22          #include "va4010reg.h"
  23          #include "common.h"
  24          
  25          
  26          WORD WordSwap(WORD dat)
  27          {
  28   1      #if 0
                      return(((dat&0x00FF)<<8)|((dat&0xFF00)>>8));
              #else
  31   1              WORD in;
  32   1              WORD out;
  33   1      
  34   1              in = dat;
  35   1              out = LoadAlien16(&in);
  36   1              return out;     
  37   1      #endif
  38   1      }
  39          
  40          DWORD SwapINT32(DWORD dat)
  41          {
  42   1      #if 0
                  dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8;
                      return dData;
              #else
  46   1              DWORD in, out;
  47   1      
  48   1              in = dat;
  49   1              LoadAlien32(&in, &out);
  50   1              return out;
  51   1      #endif
  52   1      }
  53          
C51 COMPILER V8.01   COMMON                                                                04/17/2008 09:54:24 PAGE 2   

  54          void DelayMs(BYTE nFactor)
  55          {
  56   1              BYTE i;
  57   1      
  58   1              for(i=0; i<nFactor; i++){       
  59   2                      DelayUs(200);
  60   2              }
  61   1      }
  62          
  63          void DelayUs(BYTE nFactor)
  64          {
  65   1              BYTE i;
  66   1              volatile BYTE tmp=0;
  67   1      
  68   1              for(i=0; i<nFactor; i++){
  69   2                      tmp ++;
  70   2      //              _nop_ (); 
  71   2              }       
  72   1      
  73   1      }
  74          
  75          #if (UART_DEBUG == UART_DEBUG_ENABLE)
              void UartOutText(unsigned char *buffer)
              {
              //WDT = 0X00;
                      while(*buffer != '\0')
                      {       
                              SBUF = *buffer;
                              while(!(SCON & 0x02));  // wait till tx done    
                              
                              SCON &= ~(0x02); //Clear tx done
                              buffer++;
                      }
              //WDT = 0X1F;
                      return;
              }
              
              unsigned char UartOutText1(unsigned char *pUsrBuf, unsigned int num)
              {
              #if 1
                unsigned int i;
                unsigned char *ptr;
              
              //WDT = 0X00;
                ptr = pUsrBuf;
              
                for (i=0;i<num;i++)
                {
                      SBUF = *ptr;
                      while(!(SCON & SCON_TXINT)); // wait till tx done
              
                      SCON &= ~(0x02); //Clear tx done
                      ptr++;
                }
              //WDT = 0X1F;   
                //UartOutText("\r\n");
              #endif
                return(1);
              }       
              
              void UartOutValue(unsigned long value, unsigned char length)
              {
C51 COMPILER V8.01   COMMON                                                                04/17/2008 09:54:24 PAGE 3   

              #if 0
                      UART *uart;
                      BYTE byte;
                      BYTE *point;
              
                      uart = (UART *)(UART_BASE);
                      value = value << ((8-length) * 4);
              
                      while(length)
                              {
                              byte = (value & 0xf0000000) >> 28;
                              byte += 0x30;
                              if(byte > 0x39)         byte += 7;
              
                              while(!(uart->UartInt & 0x0040));               // wait until tx fifo ready
              
                              uart->UartData = byte;
                              value = value << 4;
                              length --;
                              }
              #else
                      unsigned char byte;
                      //unsigned char *point;
              //WDT = 0X00;   
                      value = value << ((8-length) * 4);
                      while(length)   {
                              byte = (value & 0xf0000000) >> 28;
                              byte += 0x30;
                              if(byte > 0x39)         byte += 7;
              
                              //while(!(uart->UartInt & 0x0040));             // wait until tx fifo ready
                              //uart->UartData = byte;
                              SBUF = byte;            
                              while(!(SCON & 0x02));  // wait till tx done
                              SCON &= ~(0x02); //Clear tx done                
              
                              value = value << 4;
                              length --;
                      }       
              //WDT = 0X1F;   
                      UartOutText("\r\n");
              #endif
                      return;
              }
              #endif
 161          
 162          #if (UART_DEBUG == UART_DEBUG_ENABLE)
              //#if 1
              void UartOutInfo(unsigned char *buffer)
              {
                      while(*buffer != '\0')
                      {       
                              SBUF = *buffer;
                              while(!(SCON & 0x02));  // wait till tx done    
                              
                              SCON &= ~(0x02); //Clear tx done
                              buffer++;
                      }
              
                      return;
              }
              
C51 COMPILER V8.01   COMMON                                                                04/17/2008 09:54:24 PAGE 4   

              #if 0 
              unsigned char UartOutInfo1(unsigned char *pUsrBuf, unsigned int num)
              {
              #if 1
                unsigned int i;
                unsigned char *ptr;
              
                ptr = pUsrBuf;
              
                for (i=0;i<num;i++)
                {
                      SBUF = *ptr;
                      while(!(SCON & SCON_TXINT)); // wait till tx done
              
                      SCON &= ~(0x02); //Clear tx done
                      ptr++;
                }
                      
                UartOutInfo("\r\n");
              #endif
                return(1);
              }       
              #endif
              
              void UartOutData(unsigned long value, unsigned char length)
              {
              #if 0
                      UART *uart;
                      BYTE byte;
                      BYTE *point;
              
                      uart = (UART *)(UART_BASE);
                      value = value << ((8-length) * 4);
              
                      while(length)
                              {
                              byte = (value & 0xf0000000) >> 28;
                              byte += 0x30;
                              if(byte > 0x39)         byte += 7;
              
                              while(!(uart->UartInt & 0x0040));               // wait until tx fifo ready
              
                              uart->UartData = byte;
                              value = value << 4;
                              length --;
                              }
              #else
                      unsigned char byte;
                      //unsigned char *point;
                      
                      value = value << ((8-length) * 4);
                      while(length)   {
                              byte = (value & 0xf0000000) >> 28;
                              byte += 0x30;
                              if(byte > 0x39)         byte += 7;
              
                              //while(!(uart->UartInt & 0x0040));             // wait until tx fifo ready
                              //uart->UartData = byte;
                              SBUF = byte;            
                              while(!(SCON & 0x02));  // wait till tx done
                              SCON &= ~(0x02); //Clear tx done                
              
C51 COMPILER V8.01   COMMON                                                                04/17/2008 09:54:24 PAGE 5   

                              value = value << 4;
                              length --;
                      }       
                      UartOutInfo("\r\n");
              #endif
                      return;
              }
              #endif
 248          
 249          void memclr(void* a, WORD c)
 250          {
 251   1          WORD i;
 252   1          for(i = 0 ; i < c ; i++)
 253   1                  *((BYTE *)a + i) = 0;
 254   1      
 255   1          return;
 256   1      }
 257          
 258          BYTE memcomp(const BYTE* a, const BYTE* b, BYTE c)
 259          {
 260   1          while(c)
 261   1          {
 262   2              if((*a) != (*b))
 263   2                  return c;
 264   2              c--;
 265   2              a++;
 266   2              b++;
 267   2          }
 268   1              
 269   1          return 0;//the same
 270   1      }
 271          
 272          void *memcopy(BYTE* a, const BYTE* b, BYTE c) //max only 255 bytes, ; DWORD c)
 273          {
 274   1          while(c)
 275   1          {
 276   2              *a = *b;
 277   2              c--;
 278   2              a++;
 279   2              b++;
 280   2          }
 281   1          return a+=c;
 282   1      }
 283          
 284          BYTE Value2Exp(WORD wVal)
 285          {
 286   1              BYTE byExp = 0;
 287   1      
 288   1              while(wVal = (wVal>>1))
 289   1                      byExp ++; 
 290   1      
 291   1              return byExp;
 292   1      }
 293          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    309    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      32
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
C51 COMPILER V8.01   COMMON                                                                04/17/2008 09:54:24 PAGE 6   

   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 + -