📄 userpref.lst
字号:
#define CS_ERR _BIT0
#define VER_ERR _BIT1
BYTE CheckFlashDataBlockError(BOOL Block)
{
BYTE ErrorType=0;
BYTE i;
BYTE ucCheckSum;
for(i=0;i<5;i++)
{
if(!Block)
mstLoadDisplayData(SFD_ADDRESS);
else
mstLoadDisplayData(SFD_ADDRESS+0x1000);
ucCheckSum=usrCalCheckSum((BYTE *)&g_VideoSetting, VideoSettingSize - CheckSumSize);
if(g_VideoSetting.Checksum!=ucCheckSum)
ErrorType|=CS_ERR;
if(g_VideoSetting.ucVersion!=VideoVersion)
ErrorType|=VER_ERR;
if(!ErrorType)
break;
}
return ErrorType;
}
void ReadSetting(void)
{
BYTE Block0Err;
BYTE Block1Err;
if(g_bFlashReadOK)
return;
Block0Err=CheckFlashDataBlockError(0);
Block1Err=CheckFlashDataBlockError(1);
if(Block0Err&&!Block1Err) //Block0 error, Block1 OK, restore Block1 to Block0
{
putstr("\r\nBlock0 Err!");
SaveVideoSetting();
}
else if(!Block0Err&&Block1Err)
{
putstr("\r\nBlock1 Err!");
CheckFlashDataBlockError(0);
C51 COMPILER V8.01 USERPREF 11/28/2006 08:08:10 PAGE 6
SaveVideoSetting();
}
else if(Block0Err&&Block1Err)
{
putstr("\r\nUpdate!");
InitVideoSetting();
SaveVideoSetting();
}
else
{
putstr("\r\nLoad OK!");
}
g_bFlashReadOK=1;
}
#endif
314
315 //*******************************************************************
316 // Function Name: msSetUserPref
317 //
318 // Decscription: Restore user setting from NVRAM
319 //
320 // callee: msWriteByte() in ms_rwreg.c
321 //
322 // caller: msSetupMode() in mStar.c
323 //*******************************************************************
324 void msSetUserPref(void)
325 {
326 1 BYTE tempSat,tempCon,tempBri;
327 1 if(IsVideoPortInUse())
328 1 {
329 2 msAdjustVideoRGB (RedGain, GreenGain, BlueGain);
*** ERROR C202 IN LINE 329 OF ..\..\MSFUNC\USERPREF.C: 'RedGain': undefined identifier
330 2 msAdjustVideoCbCr(CbGain, CrGain );
*** ERROR C202 IN LINE 330 OF ..\..\MSFUNC\USERPREF.C: 'CbGain': undefined identifier
331 2
332 2 tempSat=usrNonLinearCalculate(g_NLCVideoSaturation,g_VideoSetting.VideoSaturation);
333 2 tempCon=usrNonLinearCalculate(g_NLCVideoContrast,g_VideoSetting.VideoContrast);
334 2
335 2 #if TV_ENABLE
336 2 if(IsTVInUse())
337 2 tempCon+=TV_EXTR_CONTRAST;
338 2 #endif
339 2
340 2 msAdjustHSC(g_VideoSetting.VideoHue, tempSat, tempCon);
341 2
342 2 msAdjustVideoHue(g_VideoSetting.VideoHue);
343 2
344 2 tempBri=usrNonLinearCalculate(g_NLCVideoBrightness,g_VideoSetting.VideoBrightness);
345 2 msAdjustBrightness(tempBri);
346 2 }
347 1 else
348 1 {
349 2 tempBri=usrNonLinearCalculate(g_NLCVideoBrightness,g_PcSetting.Brightness);
350 2 msAdjustBrightness(tempBri);
351 2 msAdjustPCContrast(g_PcSetting.Contrast);
352 2 }
353 1 }
354
355 //********************************************************************************************************
-******//
C51 COMPILER V8.01 USERPREF 11/28/2006 08:08:10 PAGE 7
356 #if TV_ENABLE
357 void EraseEepromTvFlag(BYTE StartChannal)
358 {
359 1 BYTE channel;
360 1 for(channel=StartChannal;channel<=MAX_CHANNEL_NUM-1;channel++)
361 1 {
362 2 WatchDogClear();
363 2 NVRam_WriteByte((nvrChanneAddr(channel)+MISCOFFSETADDR), TV_SOUND_I|DoAFCFlag);
364 2 }
365 1 }
366
367 void CheckChannelNumberSettingRang()
368 {
369 1 g_TVChSetting.ucCurChannelNO %=MAX_CHANNEL_NUM;
370 1 g_TVChSetting.ucPreChannelNO %=MAX_CHANNEL_NUM;
371 1 g_TVChSetting.ucMaxValidChNum %=MAX_CHANNEL_NUM;
372 1 g_VideoSetting.TunerAGC%=0x20;
373 1 }
374
375 void ReadChannelNumberSetting(void)
376 {
377 1 NVRam_ReadTbl(ChannelNumberInfoAddr, (BYTE*)&g_TVChSetting, ChannelNumberInfoSize);
378 1 CheckChannelNumberSettingRang();
379 1 }
380
381 void SaveChannelNumberSetting(void)
382 {
383 1 NVRam_WriteTbl(ChannelNumberInfoAddr, (BYTE*)&g_TVChSetting, ChannelNumberInfoSize);
384 1 }
385 #endif
386
387 //********************************************************************************************************
-******//
388 #if VGA_ENABLE
389 void InitSaveModeFlag(void)
390 {
391 1 NVRam_WriteByte(nvrMonitorAddr(Checksum), 0);
392 1
393 1 for (g_ucSaveIndex=0; g_ucSaveIndex<NumberOfMode; g_ucSaveIndex++)
394 1 {
395 2 WatchDogClear();
396 2 NVRam_WriteByte(nvrModeAddr(checksum), 0);
397 2 }
398 1 }
399
400 void InitModeSetting(void)
401 {
402 1 g_ModeSetting.HTotal=StandardModeHTotal;
403 1 g_ModeSetting.HStart=StandardModeHStart;
404 1 g_ModeSetting.VStart=StandardModeVStart;
405 1 g_ModeSetting.AutoHStart=g_ModeSetting.HStart;
406 1 g_ModeSetting.AutoHStart=g_ModeSetting.VStart;
407 1 g_ModeSetting.Phase=0x1F;
408 1 g_ModeSetting.AutoTimes=0;
409 1 g_ModeSetting.checksum=ModeCSValue;
410 1 }
411
412 void CheckModeSettingRange(void)
413 {
414 1 if (abs(g_ModeSetting.HTotal-StandardModeHTotal)>ClockAdjRange)
415 1 g_ModeSetting.HTotal=StandardModeHTotal;
416 1 if (g_ModeSetting.HStart>2*StandardModeHStart)
C51 COMPILER V8.01 USERPREF 11/28/2006 08:08:10 PAGE 8
417 1 g_ModeSetting.HStart=StandardModeHStart;
418 1 if (g_ModeSetting.VStart>2*StandardModeVStart)
419 1 g_ModeSetting.VStart=StandardModeVStart;
420 1
421 1 g_ModeSetting.Phase&=0x3F;
422 1
423 1 if (g_ModeSetting.AutoTimes==0 || abs(g_ModeSetting.HStart-g_ModeSetting.AutoHStart)>50)
424 1 g_ModeSetting.AutoHStart=g_ModeSetting.HStart;
425 1 }
426
427
428
429 void SaveModeSetting(void)
430 {
431 1 NVRam_WriteTbl(nvrModeBaseAddr(g_ucSaveIndex), (BYTE*)&g_ModeSetting, ModeSettingSize);
432 1 }
433
434 void GetModeSaveIndex(void)
435 {
436 1 ModeInfoType modeInfo;
437 1 BYTE i;
438 1 WORD hFreq, vFreq;
439 1
440 1 hFreq=HFreq(SrcHPeriod);
441 1 vFreq=VFreq(hFreq, SrcVTotal);
442 1 for (i=0; i<UserModeNumber; i++)
443 1 {
444 2 #ifndef TempMask
445 2 NVRam_ReadTbl(nvrModeInfoAddr(i) , (BYTE*)&modeInfo, ModeInfoSize);
446 2 #endif
447 2 if (abs(hFreq-modeInfo.HorFreq)<HFreq_Tol && abs(vFreq-modeInfo.VerFreq)<VFreq_Tol &&
448 2 (SrcFlags&0x13)==modeInfo.Flags)
449 2 break;
450 2 }
451 1
452 1 if (i>=UserModeNumber)
453 1 {
454 2 g_PcSetting.SavedModeIndex=(g_PcSetting.SavedModeIndex+1)%UserModeNumber;
455 2 g_ucSaveIndex=g_PcSetting.SavedModeIndex;
456 2 modeInfo.HorFreq=hFreq;
457 2 modeInfo.VerFreq=vFreq;
458 2 modeInfo.Flags=SrcFlags&0x13;
459 2 NVRam_WriteTbl(nvrModeInfoAddr(g_ucSaveIndex), (BYTE*)&modeInfo, ModeInfoSize);
460 2 NVRam_WriteByte(nvrModeAddr(checksum), 0);
461 2 NVRam_WriteByte(nvrMonitorAddr(SavedModeIndex), g_PcSetting.SavedModeIndex);
462 2 }
463 1 else
464 1 g_ucSaveIndex=i;
465 1 }
466
467 void ReadModeSetting(void)
468 {
469 1 BYTE tempValue;
470 1 if (UserModeFlag)
471 1 GetModeSaveIndex();
472 1 else
473 1 g_ucSaveIndex=g_ucSrcModeIndex;
474 1
475 1 #ifndef TempMask
476 1 NVRam_ReadByte(nvrModeAddr(checksum), &tempValue);
477 1 #endif
478 1
C51 COMPILER V8.01 USERPREF 11/28/2006 08:08:10 PAGE 9
479 1 if (tempValue==ModeCSValue)
480 1 {
481 2 #ifndef TempMask
482 2 NVRam_ReadTbl(nvrModeBaseAddr(g_ucSaveIndex), (BYTE*)&g_ModeSetting, ModeSettingSize);
483 2 #endif
484 2 }
485 1 else
486 1 {
487 2 InitModeSetting();
488 2 SaveModeSetting();
489 2 }
490 1
491 1 CheckModeSettingRange();
492 1 }
493 #endif
494 //********************************************************************************************************
-******//
495
C51 COMPILATION COMPLETE. 1 WARNING(S), 6 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -