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

📄 global.c

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 C
字号:
//----------------------------------------------------
#define  EnableColorMatrix

#define _GLOBAL_C_

#include "types.h"
#include "board.h"
#include "global.h"
#include "msace.h"
#include "panel.h"
#include "tv.h"
//#include "menudef.h"
#include "menu.h"
#include "calendarpatch.h"
#include "keypad.h"
#include "msosd.h"
#include "menustr.h"
#include "keypad.h"
#include "tv.h"
#include "nvram.h"
#if GAME_ENABLE
#include "Game.h"
#endif
#include "debug.h"
#include "Menufunc.h"
#include "power.h"
#include "mstar.h"

void CopymatrixArray(void)
{
    BYTE ucRow, ucCol;

    for(ucRow=0; ucRow!=3; ucRow++)
    {
        for(ucCol=0; ucCol!=3; ucCol++)
       {
            tColorCorrectionMatrix[ucRow][ucCol]=tVideoColorCorrectionMatrix[ucRow][ucCol];
       }
    }
}

void Init_GlobalVariables(void)
{
	 g_ucOsdCounter=0;
	 g_ucModeDetectCounter=10;
	 g_ucOsdCounter=0;
	 g_ucPowerDownCounter=0;
	 g_ucInputTimingStableCounter=0;
	 g_ucTimingChangeDebunce=0;
	 g_ucSaveIndex=0; // g_ucSaveIndex
	 g_ucUratProgramCount=0;
	 g_ucCaptionPosition=0;
	 g_ucSwapLeftSerNum=0;
	 g_ucCopyLeftSerNum=0;
	 g_uwSleepTimeCounter=0;

	 g_bForceColorEnable=0;

	 g_bDebugProgStopFlag=0;

	 g_ucSyncMaxStableCounter=150;

	 g_ucTimeHour=0;
	 g_ucTimeMinute=0;
	 g_ucONTimeHour=0;
	 g_ucONTimeMinute=0;
	 g_ucOFFTimeHour=0;
	 g_ucOFFTimeMinute=0;

     Clr_InputTimingChangeFlag();
     Clr_PowerSavingFlag();
     Clr_ForcePowerSavingFlag();
     Clr_InputTimingStableFlag();
     Clr_DoModeSettingFlag();
     Clr_FreeRunModeFlag();
     Clr_OsdTimeoutFlag();
     Clr_SaveSettingFlag();
     Clr_RxBusyFlag();

     Clr_DynamiccaptionFlag();
     Clr_AFCDisableFlag();
     Clr_ChannelAFCFlag();
     Clr_ShowSourceFlag();
     Clr_ReDrawCurrentOSDFlag();
     Clr_ChannelChangFlag();
     Clr_SourceChangFlag();		//junjian 061205 for SECAM to NTSC

     g_ucTimerFlag=0;

	 g_bTVAutoScanChannelEnable=FALSE;
	 g_bTVManualSearchEnable=FALSE;
	 g_bTVAutoScanChannelBreak=FALSE;
	 g_bTVManualStore = FALSE;
     g_bTVManualScanChannelBreak=FALSE;

	 g_ucmSCounter=T100MsTick; // for System timer
     g_uc100mSCounter=SystemTick;
	 g_ucSecond=0;
	 g_b100mSArrival=0;

	 g_bFlashReadOK=0;

 	 g_ucMenuPageIndex=0;
 	 g_ucMenuItemIndex=0;

     ucUartCheckTick = 0;

	 SrcFlags=SyncLoss;

     Key_KeyInit();

     #if GAME_ENABLE
	 g_uwGameMsCounter=GameTick;
	 b_GameBlockDownBit=0;
	 b_GameBlockFastDownBit=0;
	 GameVariableInitial();
     #endif

     #if CALENDAR_ENABLE
	 InitializeCalendarVariable();
     #endif

     #if Enable_Logo_Display
	 ucLogoDisplayCounter=2;
	 Set_DrawLogoFlag();
	 Clr_OSDInitFlag();
     #endif

  	 msNLCCurveInit();
	 #if CCFL_FUNCTION
	 msSetCCFLBrightness();
	 #endif

	 // msACE libary initial
	 InitACEVar();
     CopymatrixArray();

     #if IRSEND_ENABLE
	 g_bIRSendEnable=0;
	 g_ucIRSendCount=0;
	 g_ucIRSendStatus=0;
	 g_ucIRSendSYSData1=0x00;
	 g_ucIRSendSYSData2=0xFC;
	 g_ucIRSendCOMData1=0x00;
	 g_ucIRSendCOMData2=0x00;
     #endif

     g_ucIr100Key=0;
     g_bIrNumKeyStart=0;
}


void FlagCheckHandler(void)
{
#if Enable_Logo_Display
    if (DrawLogoFlag&&PowerOnFlag)
    	{
    	if (g_ucMenuPageIndex!=LogoMenu)
    		{
    		msVD_FSM_Reset(PAL_SWITCH_AUTO);
		g_ucMenuPageIndex = LogoMenu;
		g_ucMenuItemIndex=0;
		ExecuteKeyEvent(MIA_RedrawMenu);
		msDrawLogo();
		msSetBlueScreen( _ENABLE, FR_BLUE);
		Clr_InputTimingChangeFlag();
		Power_TurnOnPanel();
    		}
		return;
    	}
 	if(OSDInitFlag)
  	{
  		Osd_InitOSD();
		Clr_OSDInitFlag();
	}
#endif

    #if GAME_ENABLE
    if (g_ucMenuPageIndex!=GameMenu&&g_bGameEnable)
   	    g_bGameEnable=0;
    #endif

	MenuStatusCHK();

 	if(ReDrawCurrentOSDFlag)//for time set
  	{
  		if(g_ucMenuPageIndex==ClockMenu)
  			{
		  	ReDrawCurrentOSDItem(1);
		  	ReDrawCurrentOSDItem(2);
		  	ReDrawCurrentOSDItem(3);
  			}
		else
			{
			ExecuteKeyEvent(MIA_RedrawMenu);
			g_ucCaptionPosition=1;
			//Clr_DynamiccaptionFlag();
			}
	  	Clr_ReDrawCurrentOSDFlag();
  	}

    #if TV_ENABLE
   	if(ChannelChangFlag&&PowerOnFlag)
   	{
  	    TV_SetCh();
	    Clr_ChannelChangFlag();
   	}
    #endif

	if(ShowSourceFlag)
  	{
		DrawShowSourcemenu();
		Clr_ShowSourceFlag();
  	}

}


void SlowTimeHandler(void)
{
	BOOL TOneMinArrival=FALSE;

	if(g_b100mSArrival)
	{
		g_b100mSArrival=0;

	    #if TV_ENABLE
        TurnerAFCHandler();
	    #endif

		if(DynamiccaptionFlag)
		{
			  if(g_ucCaptionPosition)
			  {
				  g_ucCaptionPosition--;
				  Osd_SetTextColor(CP_YellowColor, CP_TransparenceColor);
				  Osd_DrawStr(g_ucCaptionPosition, 0, DynamicText(g_ucMenuPageIndex-PictureMenu));
			  }
			  else
			    Clr_DynamiccaptionFlag();
		}

	    #if TV_ENABLE
        if(g_bTVAutoScanChannelEnable)
            ReDrawProgram(g_bProgramFlash);
	    #endif

		if(IsSrcHasSignal())
		{
		    msVDCombHandler();
            Fsm_ResetHandle();
            msVideoAGCHandle();
		}

        FlagCheckHandler();
        //-----100ms tick end---------------

	    if(--(g_uc100mSCounter)==0)
    	{
    	    //one second tick
    	    g_ucSecond++;
            g_uc100mSCounter=SystemTick;

            if (ucUartCheckTick)
                if ((--ucUartCheckTick)==0)
                    g_UartCommand.Index = 0;

	#if Enable_Logo_Display
            if (ucLogoDisplayCounter)
                if ((--ucLogoDisplayCounter)==0)
                	{
			Clr_DrawLogoFlag();
			Osd_Hide();
			msSetBlueScreen( _ENABLE, FR_BLACK);
			Set_OSDInitFlag();
			Set_InputTimingChangeFlag();
                	}
	#endif

    	    if(g_ucSecond==60)
    	    {
    	    	g_ucSecond=0;
    	    	TOneMinArrival=TRUE;

    			if (g_uwSleepTimeCounter)
    				if (--g_uwSleepTimeCounter==0)
    					Set_SleepTimeoutFlag();
    	    }

    	    if (SleepFlag)
    	    {
    	    	Clr_SleepTimeoutFlag();
    			g_ucSleepTime=SleepTimeOff;
    			ExecuteKeyEvent(MIA_Power);
    	    }

    	    if(EnableTimeFlag)
    	    {
    	         if(ForcePowerONFlag)
    	         {
    	         	if(!PowerOnFlag)
    		        ExecuteKeyEvent(MIA_Power);
    	         }
    	    }
    	    if(EnableTimeFlag)
    	    {
    	    	if(TOneMinArrival)
    	    	{
    	 			 if (g_ucMenuPageIndex==ClockMenu)
    	 			 {
    		 			Set_ReDrawCurrentOSDFlag();
    					Clr_PowerOFFTimeEnableFlag();
    					Clr_PowerONTimeEnableFlag();
    	 			 }
    				g_ucTimeMinute++;
    				if(g_ucTimeMinute==60)
    				{
    					g_ucTimeMinute=0;
    					g_ucTimeHour++;
    					if(g_ucTimeHour==24)
    						g_ucTimeHour=0;
    				}

    				if (EnableONTimeFlag)
    				{
    					if((g_ucTimeHour==g_ucONTimeHour)&&(g_ucTimeMinute==g_ucONTimeMinute)&&!PowerONTimeEnableFlag)
    					Set_ForcePowerONFlag();
    				}
    				if (EnableOFFTimeFlag)
    				{
    					if((g_ucTimeHour==g_ucOFFTimeHour)&&(g_ucTimeMinute==g_ucOFFTimeMinute)&&!PowerOFFTimeEnableFlag)
    					Set_SleepTimeoutFlag();
    				}
    	    	}
    	    }


    		if (g_ucOsdCounter)
    			{
    			if (--g_ucOsdCounter==0)
    				{
    	    				g_bIrNumKeyStart = 0;
    	    				g_bIrKeyNumEnd = 0;
    	    				Set_OsdTimeoutFlag();
    				}
    			}

    		if (g_ucPowerDownCounter)
    			if (--g_ucPowerDownCounter==0)
    				Set_ForcePowerSavingFlag();
    	}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -