📄 e2prom.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 + -