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

📄 blc_hw.c

📁 针对Intel Xscale PXA255的WinCE boot loader源代码包!极具参考价值!
💻 C
字号:
/********************************************************************

Module Name:    BLC_hw.c
Abstract:	Hardware dependent portion 

*********************************************************************/


#include 	<windows.h>
#include 	<types.h>
#include 	"blc_cmn.h"
#include 	"blc_hw.h"
#include	"blc_glob.h"
#include	"cken.h"
#include	"xsc1.h"

#define	BLMSG_TRACE	0//1	//turn off by hzh

extern ULONG		gPWMValue;
extern BOOL		gBLState;

extern CLKMAN_REGS	*v_pCLKReg;
extern GPIO_REGS	*v_pGPIOReg;
extern PWM_REGS		*v_pPWM1Reg;


BOOL InitializeBacklightHardware(void)
{

	
	RETAILMSG(BLMSG_TRACE, (TEXT("+InitializeBacklightHardware\r\n")));
	
	// turn on backlight	
	v_pCLKReg->cken |= CLK_PWM1;	// PWM0 clock enabled	
		

	v_pGPIOReg->GPCR_x &= ~GPIO_21;
	v_pGPIOReg->GPSR_x |= GPIO_21;
	v_pGPIOReg->GPDR_x |= GPIO_21;

	
	v_pGPIOReg->GPCR_x |= GPIO_17;
	v_pGPIOReg->GPDR_x |= GPIO_17;			// set output mode
	
	v_pGPIOReg->GAFR1_x &= ~GPIO_17_AF3;		// set PWM alternate function
	v_pGPIOReg->GAFR1_x |= GPIO_17_AF2_PWM1;
	
	SetBacklightState(TRUE, FALSE);	// set backlight state at boot.
	

	RETAILMSG(BLMSG_TRACE, (TEXT("-InitializeBacklightHardware\r\n")));
	return TRUE;
}

void SetHardwareBacklightState(void)
{
	RETAILMSG(BLMSG_TRACE, (TEXT("+SetHardwareBacklightState, turning backlight %s\r\n"), gBLState ? TEXT("on") : TEXT("off")));
	
	if (gBLState==BLSTATE_ON)	// turn on backlight
	{
		v_pCLKReg->cken |= CLK_PWM1;		
		v_pPWM1Reg->pwcr = PWM1_PRESCALE_DIVISOR;	
		v_pPWM1Reg->pwdr = gPWMValue;		
		v_pPWM1Reg->pwpr = PWM1_PERIOD_CONTROL;		
		RETAILMSG(BLMSG_TRACE, (TEXT("SetHardwareBacklightState, v_pPWM1Reg->pwdr=0x%x, gPWMValue=0x%x\r\n"),v_pPWM1Reg->pwdr, gPWMValue));	
	}
	else 	// turn off backlight
	{		
		
		v_pPWM1Reg->pwcr = PWM1_PRESCALE_DIVISOR;	
		v_pPWM1Reg->pwdr = 0x00;		
		v_pPWM1Reg->pwpr = PWM1_PERIOD_CONTROL;	
		
		v_pCLKReg->cken &= ~CLK_PWM1;	// PWM0 clock disabled			
		RETAILMSG(BLMSG_TRACE, (TEXT("SetHardwareBacklightState, turning backlight off\r\n")));		
	}
	
		
	RETAILMSG(BLMSG_TRACE, (TEXT("-SetHardwareBacklightState\r\n")));
}

DWORD GetHardwareBacklightState(void)
{
	DWORD	retState;


	
	retState = (v_pCLKReg->cken & CLK_PWM1);		
	

	
	return(retState);
}

⌨️ 快捷键说明

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