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

📄 mst705Ȧ

📁 MST705源代码
💻
📖 第 1 页 / 共 4 页
字号:
/******************************************************************************
 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 + -