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

📄 power.c

📁 LCD OSD 程序用於8051 開發lcd
💻 C
字号:
#include "types.h"
#include "board.h"
#include "global.h"
#include "ms_reg.h"
#include "panel.h"
#include "misc.h"
#include "ms_rwreg.h"
#include "mstar.h"
#include "debug.h"
#include "msOsd.h"
#include "adjust.h"

#define TurnOffOSD		0

void Power_TurnOffLed(void);
void Power_TurnOffPanel(void);
void Power_PowerOffSystem(void);

void Power_TurnOffGreenLed(void); 
void Power_TurnOnAmberLed(void);  
//=============================================
// Control system power status
// caller : main()
void Power_PowerHandler(void)
{ 
	if (ForcePowerSavingFlag)
    	{ 
    		Clr_ForcePowerSavingFlag(); // clear force power saving flag
      		if (!PowerSavingFlag)
      		{ 
      			printMsg("enter power saving");
      	  		Power_PowerOffSystem();
      	  		 if (!PowerOnFlag) // system is on power-off status
      	    { Power_TurnOffLed();
      	    }
          else                                             
          { Power_TurnOffGreenLed(); // turn off green led  //
            Power_TurnOnAmberLed();  // turn on amber led   //
          }       
      		}
    	}
}

void Power_PowerOnSystem(void)
{ 
	Power_TurnOffPanel();
  	mStar_PowerUp();
	FlgPowerOnOpenAudio=1;

 	hw_ClrStandby();

  	Clr_PowerSavingFlag();
  	Set_InputTimingChangeFlag();
  	SrcFlags|=SyncLoss;
}

void Power_PowerOffSystem(void)
{ 
	VolumeToPowerSaving();

	Power_TurnOffPanel();
  	mStar_PowerDown();	
  	Set_PowerSavingFlag();
  	Clr_InputTimingChangeFlag();
}

void Power_TurnOffLed(void)
{ 
	hw_ClrGreenLed();
  	hw_ClrAmberLed();
}
void Power_TurnOnGreenLed(void)
{ 
	hw_SetGreenLed();
}
void Power_TurnOffGreenLed(void)
{ 
	hw_ClrGreenLed();
}
void Power_TurnOnAmberLed(void)
{ 
	hw_SetAmberLed();
}
void Power_TurnOffAmberLed(void)
{ 
	hw_ClrAmberLed();
}


#if PanelRSDS // only for Hannstar 15" RSDS panel
void sMute(BYTE on)
{
// for Hannstar TCON panel :
  mStar_WriteByte(REGBK, REGBANKTCON);
  if (on)
    { mStar_WriteByte(IFCTRL, OuputFormat|PUA_B);		// turn off OE
      Delay1ms(40);
      mStar_WriteWord(G4VST_H, GPO4_VStart);		// turn OE
      mStar_WriteWord(G4VEND_H, GPO4_VEnd);
      mStar_WriteWord(G4HST_H, GPO4_HStart);
      mStar_WriteWord(G4HEND_H, GPO4_HEnd);
      mStar_WriteByte(G4CTRL, GPO4_Control);
    }
  else
    { mStar_WriteByte(IFCTRL, OuputFormat);
      mStar_WriteWord(G4VST_H, 0);		// turn OE
      mStar_WriteWord(G4VEND_H, 0);
      mStar_WriteWord(G4HST_H, 0);
      mStar_WriteWord(G4HEND_H, 0);
      mStar_WriteByte(G4CTRL, 1); // Active low
    }
  mStar_WriteByte(REGBK, REGBANKSCALER);
}
#endif
void Power_TurnOnPanel(void)
{
	//  mStar_WriteByte(OCTRL2, mStar_ReadByte(OCTRL2)|BLKS_B); // for background black
  	hw_SetPanel();
  	ForceDelay1ms(PanelOnTiming1);

  	//jon add
#if PanelQDI17L
  mStar_WriteByte(OCTRL2, mStar_ReadByte(OCTRL2)&~WHTS_B);
  ForceDelay1ms(10);
#endif

#if PanelRSDS
  	sMute(1);
#endif

#if PanelRSDS
  	mStar_WriteByte(OCTRL3, 0x1F); // RSDS output with all GPO
#elif PanelLVDS
  	mStar_WriteByte(OCTRL3, ENRT_B); // LVDS output
#endif
  	mStar_WriteByte(TRISTATE, 0);
	//mStar_WriteByte(OCTRL2, mStar_ReadByte(OCTRL2)&~BLKS_B);
  	ForceDelay1ms(PanelOnTiming2);
  	hw_SetBlacklit();
}

void Power_TurnOffPanel(void)
{
#if TurnOffOSD
  	mStar_WriteOSDByte(OSDDBC, 0x0); // disable osd double buffer
  	mStar_WriteOSDByte(IOSDC1, 0);
	//  mStar_WriteOSDByte(DBFC, 0x0); // disable double buffer
	//  mStar_WriteByte(OCTRL2, mStar_ReadByte(OCTRL2)|BLKS_B);
  	Delay4us();
#endif

  	hw_ClrBlacklit();
  	ForceDelay1ms(PanelOffTiming1);
  	  	//jon add
 #if  PanelQDI17L
  mStar_WriteByte(OCTRL2, mStar_ReadByte(OCTRL2)|WHTS_B);//barry0319 QDIXL02 normal white panel
  ForceDelay1ms(140);   //jon change 40 to 140 modify change timing monitor flicker(3~5senconds)
#endif

#if PanelRSDS
  	sMute(0);
#endif
  	mStar_WriteByte(TRISTATE, 0xFF);
#if !PanelTTL
  	mStar_WriteByte(OCTRL3, 0);
#endif
  	ForceDelay1ms(PanelOffTiming2);
  	hw_ClrPanel();

#if TurnOffOSD
  	mStar_WriteOSDByte(OSDDBC, 0x5); // enable double
#endif

}

⌨️ 快捷键说明

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