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

📄 e2prom.lst

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 LST
字号:
C51 COMPILER V8.05a   E2PROM                                                               01/05/2009 15:57:49 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE E2PROM
OBJECT MODULE PLACED IN .\OBJ\E2prom.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE e2prom\E2prom.c LARGE BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\L
                    -ist\E2prom.lst) OBJECT(.\OBJ\E2prom.obj)

line level    source

   1          
   2          /******************************************************************************\
   3               Project Version:   MTKCARDVD()
   4          ********************************************************************************
   5               Filename:          E2prom.c
   6          
   7               Author:            Alan Chan
   8          
   9               Company:           CoreTek/ACT Company
  10          
  11          ********************************************************************************
  12               File Version:      1.01
  13               File Created:      July 2007
  14          
  15               Compiled Using:    keil uVision2 Version 2.23 
  16          
  17          ********************************************************************************
  18               Files Required:
  19          
  20          ********************************************************************************
  21               File Description:
  22          
  23          ********************************************************************************
  24               File History:
  25          
  26          --------------------------------------------------------------------------------
  27            Date         Name           Description
  28          --------------------------------------------------------------------------------
  29            Mar. 2007    Alan Chan    File Created
  30            
  31          \******************************************************************************/
  32          #include "global.h"
  33          #include "tv.h"
  34          
  35          #include "e2prom.h"
  36          
  37          extern void RadioLoadDefaultData(void);
  38          extern void RadioStationSend2DVD(void);
  39          #ifdef SUPPORT_UART_PRINTF  //martin 16Oct08
  40          extern void DRS232LogS(char *pcStr);
  41          #endif
  42          /****************************************************************************/
  43          void vInitialI2C(void)
  44          {
  45   1             bNoAck = 0;
  46   1              EEP_Wait = 0;
  47   1              IIC_Stop(0);
  48   1              IIC_Stop(1);
  49   1      }
  50          
  51          /****************************************************************************/
  52          void WriteE2prom(WORD addr,BYTE *databuf,WORD length)
  53          {
  54   1              BYTE id,temp;
C51 COMPILER V8.05a   E2PROM                                                               01/05/2009 15:57:49 PAGE 2   

  55   1              union W_TEMP addr1;
  56   1      
  57   1              addr1.valW = addr;
  58   1              
  59   1              while( length > 0)
  60   1              {
  61   2                      id = I2C_EEP_ADDR + (addr1.valB[0] << 1);
  62   2                      temp = EEPROM_PBYTE -(addr1.valB[1]&(EEPROM_PBYTE-1));
  63   2                      if( temp > length)
  64   2                              temp = length;
  65   2      
  66   2                      while(EEP_Wait > 0);
  67   2      
  68   2                      IICSW_Write(0,id,1,addr1.valB[1],databuf,temp);
  69   2                      EEP_Wait = EEPROM_PTIME;
  70   2              
  71   2                      length -= temp;
  72   2                      addr1.valW += temp;
  73   2                      databuf += temp;
  74   2              }
  75   1              
  76   1      }
  77          
  78          /****************************************************************************/
  79          void ReadE2prom(WORD addr,BYTE *databuf,WORD number)
  80          {
  81   1              BYTE id;
  82   1              union W_TEMP addr1;
  83   1      
  84   1              addr1.valW = addr;
  85   1              id = I2C_EEP_ADDR + (addr1.valB[0] << 1);
  86   1              while(EEP_Wait > 0);
  87   1              IICSW_Read(0,id,1,addr1.valB[1],databuf,number);
  88   1      }
  89          /****************************************************************************/
  90          BOOL fgEepromWriteByte(WORD wAddr,BYTE bData)
  91          {
  92   1          WriteE2prom(wAddr, &bData, 1);
  93   1          return (TRUE);
  94   1      }
  95          BYTE bEepromReadByte(WORD wAddr)
  96          {
  97   1          BYTE bData;
  98   1      
  99   1          ReadE2prom(wAddr, &bData,1);
 100   1          return (bData);
 101   1      }
 102          
 103          void PowerDownSaveToE2prom(void)
 104          {
 105   1              WriteE2prom(SYSMODE_POS, &SysMode, 1);
 106   1              
 107   1              WriteE2prom(TV_LAST_CH_POS, &bTvCurrChIndex, 1);
 108   1              #ifdef MARTIN_SUPPORT_SHOW_TV_VERSION  //31Jul08
 109   1              WriteE2prom(TV_VERSION_POS, &fgTvVersion, 1);
 110   1              #else
                      WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTvCurrSound, 1);
                      #endif
 113   1              WriteE2prom(TV_TOTAL_CH_POS, &bTvTotalCh, 1);   
 114   1      }
 115          
 116          /****************************************************************************/
C51 COMPILER V8.05a   E2PROM                                                               01/05/2009 15:57:49 PAGE 3   

 117          void LoadE2promDefault(void)
 118          {
 119   1              BYTE bTmp[6];
 120   1               #ifdef SUPPORT_UART_PRINTF
 121   1                DRS232LogS(" E2prom is New.\n");      
 122   1               #endif
 123   1      
 124   1             bTmp[0] = CORETEK_ID;
 125   1             WriteE2prom(CORETEK_ID_ADDR, &bTmp, 1);
 126   1             // system mode
 127   1             bTmp[0] = DVD_MODE;
 128   1             WriteE2prom(SYSMODE_POS, &bTmp, 1);
 129   1      
 130   1             // tv
 131   1             bTmp[0] = bTvTotalCh = 0;
 132   1             WriteE2prom(TV_TOTAL_CH_POS, &bTmp, 1);
 133   1              bTmp[0] = bTvCurrChIndex = 1; //01Sep09  0;
 134   1              WriteE2prom(TV_LAST_CH_POS, &bTmp, 1);
 135   1               #ifdef MARTIN_SUPPORT_SHOW_TV_VERSION   //31Jul08
 136   1                fgTvVersion= TV_VERSION_VALUE;   //31Jul08
 137   1               _bSearchPercent=fgTvVersion;    
 138   1               bTmp[0] = fgTvVersion;
 139   1              WriteE2prom(TV_VERSION_POS, &bTmp, 1);
 140   1              // bTvCurrSound = TV_SOUND_DEFAULT;
 141   1              #else
                     bTmp[0] = bTvCurrSound = TV_SOUND_DEFAULT;//TV_SOUND_BG; martin 14May08
                     WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTmp, 1);
                      #endif
 145   1              #ifdef MARTIN_TUNER_TYPE_SELECT
 146   1              fgTunerType=TV_TYPE_DEFAULT;
 147   1              bTunerDeafultVal=(TV_TYPE_DEFAULT <<6)||(TV_SOUND_DEFAULT <<3) ||(TV_SYSTEM_DEFAULT);//0xd0;    //PAL I
 148   1              bTmp[0] = bTunerDeafultVal; // = bTunerVal;   //05Aug08
 149   1             WriteE2prom(TV_TUNER_TYPE_POS, &bTmp, 1);
 150   1              #endif
 151   1                     
 152   1                 sTvCurrChannel.wFreq =VHF_LOW_BOT; //martin 16Oct08  
 153   1                  sTvCurrChannel.bSystem=(0xc0 | bTunerDeafultVal);//bTunerVal;
 154   1                   bTvCurrSound=(bTunerDeafultVal & 0x38 )>>3;
 155   1                #ifdef SUPPORT_UART_PRINTF
 156   1                DRS232LogS("New E2prom is ok.\n");    
 157   1               #endif
 158   1      
 159   1      }
 160          
 161          /****************************************************************************/
 162          void vInitialE2prom(void)
 163          {
 164   1              BYTE bTmp;//, page;
 165   1         #ifdef SUPPORT_UART_PRINTF
 166   1           DRS232LogS("Initial E2prom Start.\n");     
 167   1         #endif
 168   1      
 169   1             bTmp = 0;
 170   1             ReadE2prom(CORETEK_ID_ADDR, &bTmp, 1);
 171   1             if(bTmp!=CORETEK_ID)
 172   1             {
 173   2                 LoadE2promDefault();
 174   2                 return;              
 175   2              }
 176   1      
 177   1       /////////////// TV Software Version /////////////////////////////////////
 178   1       #if 0   // #ifdef MARTIN_SUPPORT_SHOW_TV_VERSION   //31Jul08
C51 COMPILER V8.05a   E2PROM                                                               01/05/2009 15:57:49 PAGE 4   

                      bTmp=fgTvVersion;
                      WriteE2prom(TV_VERSION_POS, &bTmp, 1);
                      #endif
 182   1      /////////////////////////////////////////////////////////////////////////
 183   1                
 184   1      /////////////////////////////////////////////////////////////////////////
 185   1             // Sysmode
 186   1      /////////////////////////////////////////////////////////////////////////
 187   1             ReadE2prom(SYSMODE_POS, &bTmp, 1);
 188   1              SysMode = NextSysMode = bTmp;   
 189   1      
 190   1      /////////////////////////////////////////////////////////////////////////
 191   1             // TV
 192   1      /////////////////////////////////////////////////////////////////////////
 193   1             LoadTVData();
 194   1      
 195   1        return;
 196   1      }
 197          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    716    ----
   CONSTANT SIZE    =     59    ----
   XDATA SIZE       =   ----      29
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -