📄 lcd_func.lst
字号:
1204 1 Data[5] = stGUD3.PREV_CHANNEL;
1205 1 Data[6] = stGUD3.TV_SETTING;
1206 1
1207 1 I2CWrite(Data);
1208 1 Delay_Xms(SET_2404_DELAY);
1209 1 }
1210
1211 void Load_GUD3(void)
1212 {
1213 1 I2CRead(ADDR_EROM1, 0xF8 , 4);
1214 1
1215 1 stGUD3.VOLUME = Data[0];
1216 1 stGUD3.CURR_CHANNEL = Data[1];
1217 1 stGUD3.PREV_CHANNEL = Data[2];
1218 1 stGUD3.TV_SETTING = Data[3];
1219 1 }
1220
1221 /*
1222 // Not used in standard code
1223 void Save_GUD4(void)
1224 {
1225 Data[0] = 12;
1226 Data[1] = ADDR_EROM1;
1227 Data[2] = 0xD0;
C51 COMPILER V6.20c LCD_FUNC 04/15/2004 12:59:09 PAGE 21
1228 Data[3] = stGUD4.C1_R;
1229 Data[4] = stGUD4.C1_G;
1230 Data[5] = stGUD4.C1_B;
1231 Data[6] = stGUD4.C2_R;
1232 Data[7] = stGUD4.C2_G;
1233 Data[8] = stGUD4.C2_B;
1234 Data[9] = stGUD4.C3_R;
1235 Data[10] = stGUD4.C3_G;
1236 Data[11] = stGUD4.C3_B;
1237 I2CWrite(Data);
1238
1239 Delay_Xms(SET_2404_DELAY);
1240 }
1241 */
1242
1243 void Load_GUD4(void)
1244 {
1245 1 I2CRead(ADDR_EROM1, 0xD0 , 9);
1246 1
1247 1 stGUD4.C1_R = Data[0];
1248 1 stGUD4.C1_G = Data[1];
1249 1 stGUD4.C1_B = Data[2];
1250 1 stGUD4.C2_R = Data[3];
1251 1 stGUD4.C2_G = Data[4];
1252 1 stGUD4.C2_B = Data[5];
1253 1 stGUD4.C3_R = Data[6];
1254 1 stGUD4.C3_G = Data[7];
1255 1 stGUD4.C3_B = Data[8];
1256 1 }
1257
1258
1259 void Save_MUD(unsigned char mode_num)
1260 {
1261 1 if (0 == mode_num || 64 < mode_num) return;
1262 1
1263 1 Data[0] = 7;
1264 1 Data[1] = ADDR_EROM0;
1265 1 Data[2] = (mode_num - 1) << 2;
1266 1 Data[3] = stMUD.H_POSITION;
1267 1 Data[4] = stMUD.V_POSITION;
1268 1 Data[5] = stMUD.CLOCK;
1269 1 Data[6] = (stMUD.PHASE & 0x7c);// | (stMUD.P_Code - 0x19);
1270 1 I2CWrite(Data);
1271 1
1272 1 Delay_Xms(SET_2404_DELAY);
1273 1 }
1274
1275 void Load_MUD(unsigned char mode_num)
1276 {
1277 1 if (0 == mode_num || 64 < mode_num) return;
1278 1
1279 1 I2CRead(ADDR_EROM0, (mode_num - 1) << 2, 4);
1280 1
1281 1 stMUD.H_POSITION = Data[0];
1282 1 stMUD.V_POSITION = Data[1];
1283 1 stMUD.CLOCK = Data[2];
1284 1 stMUD.PHASE = Data[3] & 0x7c;
1285 1 // stMUD.P_Code = (Data[3] & 0x03) + 0x19;
1286 1
1287 1
1288 1 }
1289
C51 COMPILER V6.20c LCD_FUNC 04/15/2004 12:59:09 PAGE 22
1290 void Init_GUD(void) // GU <= Default
1291 {
1292 1 stGUD0.CONTRAST = INIT_EEPROM0[3];
1293 1 stGUD0.BRIGHT = INIT_EEPROM0[4];
1294 1 stGUD0.RTD_R_CONTRAST = INIT_EEPROM0[5];
1295 1 stGUD0.RTD_G_CONTRAST = INIT_EEPROM0[6];
1296 1 stGUD0.RTD_B_CONTRAST = INIT_EEPROM0[7];
1297 1 stGUD0.RTD_R_BRIGHT = INIT_EEPROM0[8];
1298 1 stGUD0.RTD_G_BRIGHT = INIT_EEPROM0[9];
1299 1 stGUD0.RTD_B_BRIGHT = INIT_EEPROM0[10];
1300 1
1301 1 stGUD1.FUNCTION = INIT_EEPROM0[11];
1302 1 stGUD1.INPUT_SOURCE = INIT_EEPROM0[12];
1303 1 stGUD1.FILTER = INIT_EEPROM0[13];
1304 1 stGUD1.OSD_POSH = INIT_EEPROM0[14];
1305 1 stGUD1.OSD_POSV = INIT_EEPROM0[15];
1306 1 stGUD1.OSD_TIMEOUT = INIT_EEPROM0[16];
1307 1
1308 1 stGUD2.AD_R_GAIN = INIT_EEPROM1[3];
1309 1 stGUD2.AD_G_GAIN = INIT_EEPROM1[4];
1310 1 stGUD2.AD_B_GAIN = INIT_EEPROM1[5];
1311 1 stGUD2.AD_R_OFFSET = INIT_EEPROM1[6];
1312 1 stGUD2.AD_G_OFFSET = INIT_EEPROM1[7];
1313 1 stGUD2.AD_B_OFFSET = INIT_EEPROM1[8];
1314 1
1315 1 stGUD3.VOLUME = INIT_EEPROM1[11];
1316 1 stGUD3.CURR_CHANNEL = INIT_EEPROM1[12];
1317 1 stGUD3.PREV_CHANNEL = INIT_EEPROM1[13];
1318 1 stGUD3.TV_SETTING = INIT_EEPROM1[14];
1319 1
1320 1 stGUD4.C1_R = INIT_EEPROM2[3];
1321 1 stGUD4.C1_G = INIT_EEPROM2[4];
1322 1 stGUD4.C1_B = INIT_EEPROM2[5];
1323 1 stGUD4.C2_R = INIT_EEPROM2[6];
1324 1 stGUD4.C2_G = INIT_EEPROM2[7];
1325 1 stGUD4.C2_B = INIT_EEPROM2[8];
1326 1 stGUD4.C3_R = INIT_EEPROM2[9];
1327 1 stGUD4.C3_G = INIT_EEPROM2[10];
1328 1 stGUD4.C3_B = INIT_EEPROM2[11];
1329 1
1330 1
1331 1 I2CWrite(INIT_EEPROM0);
1332 1 Delay_Xms(SET_2404_DELAY);
1333 1
1334 1 I2CWrite(INIT_EEPROM1);
1335 1 Delay_Xms(SET_2404_DELAY);
1336 1
1337 1 I2CWrite(INIT_EEPROM2);
1338 1 Delay_Xms(SET_2404_DELAY);
1339 1 }
1340
1341 void Init_MUD(void)
1342 {
1343 1 unsigned char ucModeIdx;
1344 1
1345 1 // Reset frame-Sync and TV channel settings
1346 1 Data[0] = 11;
1347 1 Data[1] = ADDR_EROM1;
1348 1 Data[2] = 0;
1349 1 Data[3] = 0x00;
1350 1 Data[4] = 0x00;
1351 1 Data[5] = 0x00;
C51 COMPILER V6.20c LCD_FUNC 04/15/2004 12:59:09 PAGE 23
1352 1 Data[6] = 0x00;
1353 1 Data[7] = 0x00;
1354 1 Data[8] = 0x00;
1355 1 Data[9] = 0x00;
1356 1 Data[10] = 0x00;
1357 1
1358 1 ucModeIdx = 0;
1359 1 do
1360 1 {
1361 2 Data[2] = ucModeIdx << 3;
1362 2 ucModeIdx = ucModeIdx + 1;
1363 2
1364 2 I2CWrite(Data);
1365 2 Delay_Xms(SET_2404_DELAY);
1366 2 }
1367 1 while (26 > ucModeIdx);
1368 1
1369 1 // Reset display settings
1370 1 Data[0] = 7;
1371 1 Data[1] = ADDR_EROM0;
1372 1 Data[2] = 0;
1373 1 Data[3] = 0x80; // stMUD.H_POSITION;
1374 1 Data[4] = 0x80; // stMUD.V_POSITION;
1375 1 Data[5] = 0x80; // stMUD.CLOCK;
1376 1 Data[6] = 0x01; // stMUD.PHASE;
1377 1
1378 1 ucModeIdx = 0;
1379 1 do
1380 1 {
1381 2 Data[2] = ucModeIdx << 2;
1382 2 ucModeIdx = ucModeIdx + 1;
1383 2
1384 2 switch (ucModeIdx)
1385 2 {
1386 3 case MODE_YUV60HZ :
1387 3 Data[3] = 0xbc; // VBRIGHT
1388 3 Data[4] = 0x65 ^ 0x80; // VCONTRAST
1389 3 Data[5] = 0x64 ^ 0x80; // VSATURATION
1390 3 Data[6] = 0x00 ^ 0x80; // VHUE
1391 3 break;
1392 3 case MODE_YUV50HZ :
1393 3 Data[3] = 0xb1; // VBRIGHT
1394 3 Data[4] = 0x5f ^ 0x80; // VCONTRAST
1395 3 Data[5] = 0x65 ^ 0x80; // VSATURATION
1396 3 Data[6] = 0x00 ^ 0x80; // VHUE
1397 3 break;
1398 3 #if (VIDEO_CHIP == VDC_SAA7118)
case MODE_VIDEO60HZ :
Data[3] = 0x96; // VBRIGHT
Data[4] = 0x48 ^ 0x80; // VCONTRAST
Data[5] = 0x4a ^ 0x80; // VSATURATION
Data[6] = 0xff ^ 0x80; // VHUE
break;
case MODE_VIDEO50HZ :
Data[3] = 0x83; // VBRIGHT
Data[4] = 0x48 ^ 0x80; // VCONTRAST
Data[5] = 0x43 ^ 0x80; // VSATURATION
Data[6] = 0x00 ^ 0x80; // VHUE
break;
#else
1412 3 case MODE_VIDEO60HZ :
1413 3 Data[3] = 0x95; // VBRIGHT
C51 COMPILER V6.20c LCD_FUNC 04/15/2004 12:59:09 PAGE 24
1414 3 Data[4] = 0x47 ^ 0x80; // VCONTRAST
1415 3 Data[5] = 0x48 ^ 0x80; // VSATURATION
1416 3 Data[6] = 0xff ^ 0x80; // VHUE
1417 3 break;
1418 3 case MODE_VIDEO50HZ :
1419 3 Data[3] = 0x82; // VBRIGHT
1420 3 Data[4] = 0x47 ^ 0x80; // VCONTRAST
1421 3 Data[5] = 0x42 ^ 0x80; // VSATURATION
1422 3 Data[6] = 0x00 ^ 0x80; // VHUE
1423 3 break;
1424 3 #endif
1425 3 }
1426 2
1427 2 I2CWrite(Data);
1428 2 Delay_Xms(SET_2404_DELAY);
1429 2 }
1430 1 while (64 > ucModeIdx);
1431 1 }
1432
1433 void Check_EEPROM(void)
1434 {
1435 1 I2CRead(ADDR_EROM1, 0xFE , 2);
1436 1
1437 1 if ((INIT_EEPROM1[17] != Data[0]) || (INIT_EEPROM1[18] != Data[1]))
1438 1 {
1439 2 Delay_Xms(SET_2404_DELAY);
1440 2
1441 2 Init_GUD();
1442 2 Init_MUD();
1443 2 }
1444 1 else
1445 1 {
1446 2 Load_GUD0(); // Read Global User Data 0 from EEPROM 2404
1447 2 Load_GUD1(); // Read Global User Data 1 from EEPROM 2404
1448 2 Load_GUD2(); // Read Global User Data 2 from EEPROM 2404
1449 2 Load_GUD3(); // Read Global User Data 3 from EEPROM 2404
1450 2 Load_GUD4(); // Read Global User Data 4 from EEPROM 2404
1451 2 }
1452 1 }
1453
1454
1455 #if (TV_CHIP != TV_NONE)
void Set_TV_Channel()
{
if (0 == stGUD3.CURR_CHANNEL)
{
stGUD3.CURR_CHANNEL = 1;
}
else if (MAX_CATV_NUM < stGUD3.CURR_CHANNEL)
{
stGUD3.CURR_CHANNEL = MAX_CATV_NUM;
}
else if (0 == (stGUD3.TV_SETTING & 0x01) && MAX_AIR_NUM < stGUD3.CURR_CHANNEL)
{
stGUD3.CURR_CHANNEL = MAX_AIR_NUM;
}
((unsigned int *)Data)[1] = (stGUD3.TV_SETTING & 0x01) ? CATV_Freq[stGUD3.CURR_CHANNEL - 1] : AIR_Fr
-eq[stGUD3.CURR_CHANNEL - 1];
#if (TV_CHIP == TV_FI1236)
C51 COMPILER V6.20c LCD_FUNC 04/15/2004 12:59:09 PAGE 25
Data[0] = 6;
Data[1] = ADDR_TUNER;
Data[4] = 0xce;
Data[5] = (VHF_LOW_FREQ > (((unsigned int *)Data)[1] / 16)) ? 0xa0 : (VHF_HIGH_FREQ > (((unsigned int
-*)Data)[1] / 16)) ? 0x90 : 0x30;
I2CWrite(Data);
#endif
#if (TV_CHIP == TV_FQ1216)
Data[0] = 6;
Data[1] = ADDR_TUNER;
Data[4] = 0x8e;
Data[5] = (VHF_LOW_FREQ > (((unsigned int *)Data)[1] / 16)) ? 0xa1 : (VHF_HIGH_FREQ > (((unsigned int
-*)Data)[1] / 16)) ? 0x91 : 0x31;
I2CWrite(Data);
#endif
}
void Prev_Channel()
{
if (0 == stGUD3.CURR_CHANNEL) stGUD3.CURR_CHANNEL = 1;
stGUD3.PREV_CHANNEL = stGUD3.CURR_C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -