📄 mst705Ȧ
字号:
/******************************************************************************
Copyright (c) 2003 MStar Semiconductor, Inc.
All rights reserved.
[Module Name]: Debug.c
[Date]:
[Comment]:
Uart subroutines.
[Reversion History]:
*******************************************************************************/
#define _DEBUG_C_
// Common
#include <math.h>
#include "types.h"
#include "global.h"
#include "irFunc.h"
#include "panel.h"
#include "misc.h"
#include "ms_rwreg.h"
#include "Reg52.h"
#include "ms_reg.h"
#include "power.h"
#include "msosd.h"
#include "nvram.h"
#include "i2c.h"
#include "msACE.h"
#include "menu.h"
#include "menufunc.h"
#include "UserPref.h"
#include "tv.h"
#include "devVD.h"
#include "msVD.h"
#include "M2_VD_Std_Lib.h"
#include "Maria2_FSC_Lib.h"
#include "Maria2_ACC_Lib.h"
#include "DevTuner.h"
#include "keypaddef.h"
#if(ENABLE_VD_DSP)
#include "Maria2_dsp_lib.h"
extern BYTE idata g_ucDSP_Ctl;
//#define DSP_MARIA_DEBUG
#ifdef DSP_MARIA_DEBUG
extern XDATA BYTE g_dspDebugFlag;
extern XDATA BYTE g_dspDebugInfoIdx;
extern XDATA BYTE g_dspDebugInfo[64];
#endif
#endif
////////////////////////////////////////////
// Debug FSC lib
extern XDATA WORD g_wFSCBurstMag;
extern BYTE s_ucFSCBurstOn;
extern BYTE s_ucFSCBurstOff;
extern XDATA BYTE g_ucFSCNoiseMag;
extern XDATA BYTE s_ucFSCNoiseOn;
extern XDATA BYTE s_ucFSCNoiseOff;
extern XDATA BYTE g_ucFSCPhaseErrorAvg;
extern XDATA BYTE s_ucFSCPhaseErrorLevelOn;
extern XDATA BYTE s_ucFSCPhaseErrorLevelOff;
/////////////////////////////////////////////
extern BYTE OsdFontColor;
extern BYTE xdata g_ucAgcState;
extern HLdata xdata g_unSyncMagnitude; // average 64 lines Sync magnitude
// Internal
#include "debug.h"
///////////////////////////////////////////////////////
// Test command
///////////////////////////////////////////////////////
#if 0
void Test_CalClock( BOOL bInterlaceMode )
{
XDATA WORD wInputHPeriod; // horizontal period
XDATA WORD wHFreq;
XDATA WORD wInputVTotal;
XDATA WORD wVFreq;
XDATA WORD wOutputHTotal;
XDATA WORD wOutputVTotal;
XDATA DWORD dwClockFactor; // clock factor
BYTE ucBank;
ucBank = msReadByte( BK0_00_REGBK );
msWriteByte( BK0_00_REGBK, REG_BANK_SCALER );
wInputHPeriod = msGetHorizontalPeriod();
wHFreq = msCalculateHFreqX10(wInputHPeriod); // Cal H freq
wInputVTotal = msGetVerticalTotal();
wVFreq = msCalculateVFreqX10( wHFreq, wInputVTotal )*2; // Cal V freq
printf("\r\nInputHPeriod=%d", wInputHPeriod);
printf("\r\nInputVTotal=%d", wInputVTotal);
printf("\r\nInputHFreq=%d*10KHz", wHFreq);
printf("\r\nInputVFreq=%d*10Hz", wVFreq);
wOutputHTotal = PANEL_HTOTAL;
wOutputVTotal = PANEL_VTOTAL;
printf("\r\nClock:OutputHTotal=%d", wOutputHTotal);
printf("\r\nClock:OutputVTotal=%d", wOutputVTotal);
dwClockFactor = ((float)wInputHPeriod*wInputVTotal*524288ul*PANEL_MASTER_PLL_DIVIDER)/
((float)wOutputHTotal*wOutputVTotal);
if( IsSrcUseDigitalPort() || bInterlaceMode )
dwClockFactor /= 2;
printf("\r\nSET=%x,", (dwClockFactor>>16) );
printf("%x", (WORD)dwClockFactor );
dwClockFactor = ( ((DWORD)wInputVTotal-1) * 1048576ul / (wOutputVTotal-1) + 1 );
if( IsSrcUseDigitalPort() || bInterlaceMode )
dwClockFactor /= 2;
printf("\r\nV ScalingRatio=%x,", (dwClockFactor>>16) );
printf("%x", (WORD)dwClockFactor );
// putstr("\r\n------------------------------------");
// {
// XDATA WORD wImgHeight;
// wImgHeight = g_WindowInfo.V_CapSize;
// printf("\r\nImgHigh=%d", wImgHeight);
//
// dwClockFactor = ((float)wInputHPeriod*(wImgHeight - 1)*524288ul*PANEL_MASTER_PLL_DIVIDER) /
// ((float)wOutputHTotal * (540 - 1));
// if( IsSrcUseDigitalPort() || bInterlaceMode )
// dwClockFactor /= 2;
// printf("\r\nSET2=%x,", (dwClockFactor>>16) );
// printf("%x", (WORD)dwClockFactor );
//
// dwClockFactor = ( ((DWORD)wImgHeight-1) * 1048576ul / (540-1) + 1 );
// if( IsSrcUseDigitalPort() || bInterlaceMode )
// dwClockFactor /= 2;
// printf("\r\nV ScalingRatio2=%x,", (dwClockFactor>>16) );
// printf("%x", (WORD)dwClockFactor );
// }
msWriteByte( BK0_00_REGBK, ucBank );
}
#endif
/*
void PrintModeSetting(void)
{
printf( "\r\nModeIndex=%d", g_ModeSetting.ModeIndex );
printf( "\r\nHorizontalStart=%d", g_ModeSetting.HorizontalStart );
printf( "\r\nVerticalStart=%d", g_ModeSetting.VerticalStart );
printf( "\r\nHorizontalTotal=%d", g_ModeSetting.HorizontalTotal );
printf( "\r\nPhase=%d", g_ModeSetting.Phase );
printf( "\r\nDefaultHStart=%d", g_ModeSetting.DefaultHStart );
printf( "\r\nAutoSign=%d", g_ModeSetting.AutoSign );
printf( "\r\nModeSettingCS=%d", g_ModeSetting.ModeSettingCS );
}
*/
void ExecTestCommand(void)
{
BYTE ucBank = msReadByte(0);
switch( g_UartCommand.Buffer[_UART_CMD_INDEX1_] )
{
//case 0x25:
//g_TVChSearchStartData = MAKEWORD(g_UartCommand.Buffer[_UART_CMD_INDEX2_] , g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
//break;
case 0x50:
// if enable g_bDebugProgStopFlag, the program will halt, and only Uart function will be run
g_bDebugProgStopFlag = !g_bDebugProgStopFlag;
if( g_bDebugProgStopFlag )
{
putstr("\r\n<Debug>");
EX0 = 0;
EX1 = 0;
hw_SetGreenLed();
}
else
{
putstr("\r\n<Free>");
EX0 = 1;
EX1 = 1;
hw_ClrGreenLed();
}
break;
// Keypad Emulator ////////////////////
case 0x63: // Keypad_UP
EventProcess(KEY_UP);
break;
case 0x71: // Keypad_PIP
EventProcess(KEY_LEFT);
break;
case 0x72: // Keypad_LEFT
EventProcess(KEY_LEFT);
break;
case 0x73: // Keypad_MENU
EventProcess(KEY_MENU);
break;
case 0x74: // Keypad_RIGHT
EventProcess(KEY_RIGHT);
break;
case 0x75: // Keypad_SOURCE
EventProcess(KEY_SOURCE);
break;
case 0x76: // Keypad_POWER
EventProcess(KEY_POWER);
break;
case 0x83: // Keypad_DOWN
EventProcess(KEY_DOWN);
break;
case 0xD2: msVDReset();
break;
case 0xD3: msVD_FSM_Reset(PAL_SWITCH_AUTO);
break;
#if 0//(_DEBUG_TESTCOMMAND_EN_)
//Ir is Start from 0x90~0xDF,Please don't use 0x90.
case 0x91: // Ir_
g_ucIrCode = IRKEY_SLEEP;
g_bIrDetect = TRUE;
break;
case 0x92:
g_ucIrCode = IRKEY_1;
g_bIrDetect = TRUE;
break;
case 0x93:
g_ucIrCode = IRKEY_4;
g_bIrDetect = TRUE;
break;
case 0x94:
g_ucIrCode = IRKEY_7;
g_bIrDetect = TRUE;
break;
case 0x95:
g_ucIrCode = IRKEY_0;
g_bIrDetect = TRUE;
break;
case 0x96:
g_ucIrCode = IRKEY_FUNCTION;
g_bIrDetect = TRUE;
break;
case 0x97:
g_ucIrCode = IRKEY_OSD_MENU;
g_bIrDetect = TRUE;
break;
case 0x98:
//printf("\r\ng_ucPrevMenuPageIndex == %x", g_ucPrevMenuPageIndex);
printf("\r\ng_ucMenuPageIndex == %x", g_ucMenuPageIndex);
// printf("\r\ng_ucPrevMenuItemIndex == %x", g_ucPrevMenuItemIndex);
printf("\r\ng_ucMenuItemIndex == %x", g_ucMenuItemIndex);
// printf("\r\ng_ucOsdTimeCounter == %x", g_ucOsdTimeCounter);
break;
#if 0//( TV_SYSTEM == TV_PAL )
case 0x99:
ExecuteKeyEvent(MIA_PAL_PROGRAM_NAME);
break;
case 0x9a:
ExecuteKeyEvent(MIA_PAL_PROGRAM_INSERT);
break;
case 0x9b:
ExecuteKeyEvent(MIA_PAL_PROGRAM_DELETE);
break;
case 0x9c:
ExecuteKeyEvent(MIA_PAL_PROGRAM_OK);
break;
case 0x9d:
ExecuteKeyEvent(MIA_PAL_PROGRAM_CANCEL);
break;
#endif
case 0xA1:
g_ucIrCode = IRKEY_DISPLAY;
g_bIrDetect = TRUE;
break;
case 0xA2:
g_ucIrCode = IRKEY_2;
g_bIrDetect = TRUE;
break;
case 0xA3:
g_ucIrCode = IRKEY_5;
g_bIrDetect = TRUE;
break;
case 0xA4:
g_ucIrCode = IRKEY_8;
g_bIrDetect = TRUE;
break;
case 0xA5:
g_ucIrCode = IRKEY_100;
g_bIrDetect = TRUE;
break;
case 0xA6:
g_ucIrCode = IRKEY_INPUT;
g_bIrDetect = TRUE;
break;
case 0xA7:
g_ucIrCode = IRKEY_OSD_LEFT;
g_bIrDetect = TRUE;
break;
case 0xA8:
//g_PalCurChannelData.bAFC_Flag = TRUE;
//g_PalCurChannelData.bAFC_Doing = TRUE;
break;
#if TV_ENABLE
case 0xA9:
#if 1//(TV_SYSTEM==TV_CHINA)
chData.wFreq -= 10;
DevTunerWrite(chData.wFreq);
printf("\r\n Tuner Pll = %x", chData.wFreq);
#endif
break;
case 0xAA:
#if 1//(TV_SYSTEM==TV_CHINA)
chData.wFreq += 10;
DevTunerWrite(chData.wFreq);
printf("\r\n Tuner Pll = %x", chData.wFreq);
#endif
break;
case 0xAB:
#if 1//(TV_SYSTEM==TV_CHINA)
chData.wFreq -= 1;
DevTunerWrite(chData.wFreq);
printf("\r\n Tuner Pll = %x", chData.wFreq);
#endif
break;
case 0xAC:
#if 1//(TV_SYSTEM==TV_CHINA)
chData.wFreq += 1;
DevTunerWrite(chData.wFreq);
printf("\r\n Tuner Pll = %x", chData.wFreq);
#endif
#endif
case 0xB1:
g_ucIrCode = IRKEY_MTS;
g_bIrDetect = TRUE;
break;
case 0xB2:
g_ucIrCode = IRKEY_3;
g_bIrDetect = TRUE;
break;
case 0xB3:
g_ucIrCode = IRKEY_6;
g_bIrDetect = TRUE;
break;
case 0xB4:
g_ucIrCode = IRKEY_9;
g_bIrDetect = TRUE;
break;
case 0xB5:
#if 0//( ENABLE_CC_VCHIP )
g_ucIrCode = IRKEY_CC;
g_bIrDetect = TRUE;
#endif
break;
case 0xB6:
g_ucIrCode = IRKEY_ZOOM;
g_bIrDetect = TRUE;
break;
case 0xB7:
g_ucIrCode = IRKEY_OSD_RIGHT;
g_bIrDetect = TRUE;
break;
case 0xC1:
g_ucIrCode = IRKEY_MUTE;
g_bIrDetect = TRUE;
break;
case 0xC2:
g_ucIrCode = IRKEY_VOL_UP;
g_bIrDetect = TRUE;
break;
case 0xC3:
g_ucIrCode = IRKEY_VOL_DOWM;
g_bIrDetect = TRUE;
break;
case 0xC4:
g_ucIrCode = IRKEY_CH_UP;
g_bIrDetect = TRUE;
break;
case 0xC5:
g_ucIrCode = IRKEY_CH_DOWM;
g_bIrDetect = TRUE;
break;
case 0xC6:
g_ucIrCode = IRKEY_PICMODE;
g_bIrDetect = TRUE;
break;
case 0xC7:
g_ucIrCode = IRKEY_OSD_DOWM;
g_bIrDetect = TRUE;
break;
case 0xD0:
g_ucIrCode = IRKEY_POWER;
g_bIrDetect = TRUE;
break;
case 0xD1:
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -