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

📄 e2prom.lst

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 LST
字号:
C51 COMPILER V8.05a   E2PROM                                                               07/03/2008 18:27:38 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(.\E
                    -2prom.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          
  40          /****************************************************************************/
  41          void vInitialI2C(void)
  42          {
  43   1             bNoAck = 0;
  44   1              EEP_Wait = 0;
  45   1              IIC_Stop(0);
  46   1              IIC_Stop(1);
  47   1      }
  48          
  49          /****************************************************************************/
  50          void WriteE2prom(WORD addr,BYTE *databuf,WORD length)
  51          {
  52   1              BYTE id,temp;
  53   1              union W_TEMP addr1;
  54   1      
C51 COMPILER V8.05a   E2PROM                                                               07/03/2008 18:27:38 PAGE 2   

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

 117   1             // system mode
 118   1             bTmp[0] = DVD_MODE;
 119   1             WriteE2prom(SYSMODE_POS, &bTmp, 1);
 120   1      
 121   1             // tv
 122   1             bTmp[0] = bTvTotalCh = 0;
 123   1             WriteE2prom(TV_TOTAL_CH_POS, &bTmp, 1);
 124   1             bTmp[0] = bTvCurrChIndex = 0;
 125   1             WriteE2prom(TV_LAST_CH_POS, &bTmp, 1);
 126   1             bTmp[0] = bTvCurrSound = TV_SOUND_DEFAULT;//TV_SOUND_BG; martin 14May08
 127   1             WriteE2prom(TV_LAST_CH_AUDIO_POS, &bTmp, 1);
 128   1      }
 129          
 130          /****************************************************************************/
 131          void vInitialE2prom(void)
 132          {
 133   1              BYTE bTmp;//, page;
 134   1      
 135   1             bTmp = 0;
 136   1             ReadE2prom(CORETEK_ID_ADDR, &bTmp, 1);
 137   1             if(bTmp!=CORETEK_ID)
 138   1             {
 139   2                 LoadE2promDefault();
 140   2                 return;              
 141   2              }
 142   1      
 143   1      /////////////////////////////////////////////////////////////////////////
 144   1             // Sysmode
 145   1      /////////////////////////////////////////////////////////////////////////
 146   1             ReadE2prom(SYSMODE_POS, &bTmp, 1);
 147   1              SysMode = NextSysMode = bTmp;   
 148   1      
 149   1      /////////////////////////////////////////////////////////////////////////
 150   1             // TV
 151   1      /////////////////////////////////////////////////////////////////////////
 152   1             LoadTVData();
 153   1      
 154   1        return;
 155   1      }
 156          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    618    ----
   CONSTANT SIZE    =   ----    ----
   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 + -