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

📄 audio.lst

📁 车载DVD osdIC TW8816原厂代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   AUDIO                                                                 04/01/2008 15:02:00 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE AUDIO
OBJECT MODULE PLACED IN .\Output\audio.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE audio.c COMPACT OPTIMIZE(9,SIZE) BROWSE MODDP2 INCDIR(.\Include\) DEFINE(IN
                    -TERNAL_MCU) DEBUG OBJECTEXTEND PRINT(.\Source\audio.lst) OBJECT(.\Output\audio.obj)

line level    source

   1          //============ Audio ====================================================
   2          
   3          #include "Config.h"
   4          
   5          #include        "reg.h"
   6          #include        "typedefs.h"
   7          #include        "i2c.h"
   8          #include        "main.h"
   9          #include    "dispinfo.h"
  10          #include        "osdmenu.h"
  11          #include    "printf.h"
  12          #include        "tw88.h"
  13          #include        "etc_eep.h"
  14          #include        "audio.h"
  15          
  16          #ifdef SUPPORT_MSP_AUDIO
              static  IDATA BYTE      AudioVol = 50, 
                                                      AudioBalance = 50, 
                                                      AudioBass = 50,
                                                      AudioTreble = 46;
                                                      //AudioEffect = 0;
              #else                                   
  23          static  IDATA BYTE      AudioVol = 50;
  24          #endif                                  
  25                          bit   TVTunerAudioActive=0;
  26          static  bit   AudioMuteOn=0;
  27          
  28          extern CODE struct RegisterInfo UserRange;
  29          
  30          #ifdef SUPPORT_MSP_AUDIO
              CODE struct RegisterInfo MSPVolRange=     {0x50, 0x7d,0x66};                            
              CODE struct RegisterInfo MSPBalanceRange= {-127,  127,   0};                            
              CODE struct RegisterInfo MSPBassRange=    { -12,   12,   0};                            
              CODE struct RegisterInfo MSPTrebleRange=  { -12,   15,   2};            
              #else
  36          CODE struct RegisterInfo MSPVolRange=     {0x10, 0xe0,0x80};                            
  37          #endif
  38          
  39          BYTE ResetMSP(void)
  40          {
  41   1      #ifdef SUPPORT_MSP_AUDIO
                      BYTE mspdata[3];
              
                      #ifdef DEBUG_AUDIO
                      dPrintf("\r\n++(ResetMSP)\r\nTVVol:%d", (WORD)AudioVol);
                      #endif
              
                      AudioVol     = GetAudioVolEE();
                      AudioBalance = GetAudioBalanceEE();
                      AudioBass    = GetAudioBassEE();
                      AudioTreble  = GetAudioTrebleEE();
                      //AudioEffect  = GetAudioEffectEE();
              
                      mspdata[0] = 0;
C51 COMPILER V7.50   AUDIO                                                                 04/01/2008 15:02:00 PAGE 2   

                      mspdata[1] = 0x80;
                      mspdata[2] = 0;
                      WriteI2Cn_(MSPI2CAddress, mspdata, 3);
              
                      mspdata[0] = 0;
                      mspdata[1] = 0;
                      mspdata[2] = 0;
                      WriteI2Cn_(MSPI2CAddress, mspdata, 3);
              
                      #ifdef DEBUG_AUDIO
                      dPuts("\r\n__(ResetMSP)");
                      #endif
                      return 0;
              #else
  69   1              AudioVol     = GetAudioVolEE();
  70   1      
  71   1              return 0;
  72   1      #endif          
  73   1      }
  74          
  75          void SetMSPVol(void)
  76          {
  77   1      #ifdef SUPPORT_MSP_AUDIO
                      BYTE voldata[5];
                      int vol;
              
                      Mapping1( AudioVol, &UserRange, &vol, &MSPVolRange );
              
                      voldata[0] = 0x12;
                      voldata[1] = 0;
                      voldata[2] = 0;
                      voldata[3] = (BYTE)vol;
                      voldata[4] = 0;
                      WriteI2Cn_(MSPI2CAddress, voldata, 5);  //LJY010202
                      
                      #ifdef DEBUG_AUDIO
                      dPrintf("\r\n++(SetMSPVol)MSPVol:0x%x, AudioVol:%d__", (WORD)vol, (WORD)AudioVol);
                      #endif
              #else
  94   1              int vol;
  95   1      
  96   1              Mapping1( AudioVol, &UserRange, &vol, &MSPVolRange );
  97   1      
  98   1              #ifndef BACKLIGHT_CCFL
                      WriteTW88(0xff, 0x01); // page 1
                      WriteTW88(0x33, vol); // FPPWM 
                      WriteTW88(0xff, 0x00); // page 0
                      #endif
 103   1      
 104   1             if (P2_3) 
 105   1                      P2_3 = FALSE; // Mute Pin  of TDA7496
 106   1      #endif
 107   1      }
 108          
 109          #ifdef SUPPORT_MSP_AUDIO
              void SetMSPBalance(void)
              {
                      BYTE valdata[5];
                      int val;
              
                      Mapping1( AudioBalance, &UserRange, &val, &MSPBalanceRange );
                      
C51 COMPILER V7.50   AUDIO                                                                 04/01/2008 15:02:00 PAGE 3   

                      valdata[0] = 0x12;
                      valdata[1] = 0;         
                      valdata[2] = 1;
                      valdata[3] = (BYTE)val;
                      valdata[4] = 0;
                      WriteI2Cn_(MSPI2CAddress, valdata, 5);
              
                      #ifdef DEBUG_AUDIO
                      dPrintf("\r\n++(SetMSPBalance)MSPBal:0x%x, AudioBalance:%d__", (WORD)val, (WORD)AudioBalance);
                      #endif
              }
              
              void SetMSPBass(void)
              {
                      BYTE valdata[5];
                      int val;
              
                      Mapping1( AudioBass, &UserRange, &val, &MSPBassRange );
                      
                      valdata[0] = 0x12;
                      valdata[1] = 0;
                      valdata[2] = 2;
                      valdata[3] = (BYTE)val;
                      valdata[4] = 0;
                      WriteI2Cn_(MSPI2CAddress, valdata, 5);
              
                      #ifdef DEBUG_AUDIO
                      dPrintf("\r\n++(SetMSPBass)MSPBass:0x%x, AudioBass:%d__", (WORD)val, (WORD)AudioBass);
                      #endif
              }
              
              void SetMSPTreble(void)
              {
                      BYTE valdata[5];
                      int val;
              
                      Mapping1( AudioTreble, &UserRange, &val, &MSPTrebleRange );
                      
                      valdata[0] = 0x12;
                      valdata[1] = 0;
                      valdata[2] = 3;
                      valdata[3] = (BYTE)val;
                      valdata[4] = 0;
                      WriteI2Cn_(MSPI2CAddress, valdata, 5);
              
                      #ifdef DEBUG_AUDIO
                      dPrintf("\r\n++(SetMSPTreble)MSPTreble:0x%x, AudioTreble:%d__", (WORD)val, (WORD)AudioTreble);
                      #endif
              }
              #endif
 167          
 168          void AudioOff(void)
 169          {
 170   1      #ifdef SUPPORT_MSP_AUDIO
                      BYTE mspdata[5];
              
                      #ifdef DEBUG_AUDIO
                      dPuts("\r\n++(AudioOff)--");
                      #endif
              
                      mspdata[0] = 0x12;
                      mspdata[1] = 0x00;
C51 COMPILER V7.50   AUDIO                                                                 04/01/2008 15:02:00 PAGE 4   

                      mspdata[2] = 0x00;
                      mspdata[3] = 0xff;
                      mspdata[4] = 0x00;
                      WriteI2Cn_(MSPI2CAddress, mspdata, 5);
              #else
 184   1             P2_3 = TRUE; // Mute Pin  of TDA7496
 185   1      #endif
 186   1      }
 187          
 188          #define END_OF_LOOP     0xff
 189          
 190          #ifdef SUPPORT_TV
 191          BYTE AudioAutoStdDetection(void)
 192          {
 193   1      #ifdef SUPPORT_MSP_AUDIO
                      BYTE mspdata[5], loop=0;
                      WORD ret;
              
                      mspdata[0] = 0x10;
                      mspdata[1] = 0x00;
                      mspdata[2] = 0x20;                              // Standard selection
                      mspdata[3] = 0x00;
                      mspdata[4] = 0x01;                              // Auto Std Detection
                      WriteI2Cn_(MSPI2CAddress, mspdata, 5);
                      do {
                              mspdata[0] = 0x00;
                              mspdata[1] = 0x7E;
                              I2CReadByteMSP(MSPI2CAddress, 0x11, mspdata, 2);
                              if( loop==END_OF_LOOP )
                                      break;
                              loop++;
                              ret = mspdata[0];
                              ret = ( ret << 8 ) | mspdata[1];
                      } while( ret > 0x7ff );
                      #ifdef DEBUG_AUDIO
                      dPrintf("\r\n(AudioAutoStdDetection)Auto Detection:0x%x", (WORD)ret );
                      #endif
              
                      if( loop==END_OF_LOOP )         ret = 0;
              
                      return ret;
              #else
 221   1              return 0;
 222   1      #endif
 223   1      }
 224          #endif
 225          
 226          
 227          void ExtAudio(void)
 228          {
 229   1      #ifdef SUPPORT_MSP_AUDIO
                      BYTE mspdata[5], loop=0;
                      WORD ret;
              
                      AudioOff();
              
                      mspdata[0] = 0x10;
                      mspdata[1] = 0x00;
                      mspdata[2] = 0x30;                              // MODUS register: Automatic-on
                      mspdata[3] = 0x20;
                      mspdata[4] = 0x03;
                      WriteI2Cn_(MSPI2CAddress, mspdata, 5);
C51 COMPILER V7.50   AUDIO                                                                 04/01/2008 15:02:00 PAGE 5   

              
                      mspdata[0] = 0x12;
                      mspdata[1] = 0x00;
                      mspdata[2] = 0x13;                              // SCART switch
                      mspdata[3] = 0x00;                              
                      mspdata[4] = 0x00;                              
                      WriteI2Cn_(MSPI2CAddress, mspdata, 5);
              
                      mspdata[0] = 0x12;
                      mspdata[1] = 0x00;
                      mspdata[2] = 0x08;                              // source select
                      mspdata[3] = 0x02;                              // SCART input
                      mspdata[4] = 0x20;                              // stereo(transparent)
                      WriteI2Cn_(MSPI2CAddress, mspdata, 5);
              
                      mspdata[0] = 0x12;
                      mspdata[1] = 0x00;
                      mspdata[2] = 0x0d;                              // SCART input prescale
                      mspdata[3] = 0x50;
                      mspdata[4] = 0x00;
                      WriteI2Cn_(MSPI2CAddress, mspdata, 5);
                      ret = AudioAutoStdDetection();
              
                      #ifdef DEBUG_AUDIO
                      if( !ret ) {
                              dPuts("\r\n--Fail to Audio AutoDetect");

⌨️ 快捷键说明

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