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

📄 power.c

📁 此压缩包为杰得开发得z228的BSP的源代码,可以实现很多功能,尤其是视频解码有很好的效果.
💻 C
字号:
/********************************************************/
/* power_extern.c: implementation of power management.	*/
/* Author   : qzsu																			*/
/* History  : 2006-11-11																*/
/********************************************************/

#include ".\inc\I2C_extern.h"
#include ".\inc\powermanagement.h"


#define MIN_PRECISION 0.00001

///////////////////////External///////////////////////////

/*****************************************
Fuction:	init I2C
Input:		none
Output:		none
Return:		none
Modify:
*******************************************/
void PM_InitI2C(void)
{
	InitI2C();
}

/*****************************************
Fuction:	deinit I2C
Input:		none
Output:		none
Return:		none
Modify:
*******************************************/
void PM_DeInitI2C(void)
{
	DeleteI2C();
}

/*
back light
*/
void PM_BackLight(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}
	
	WriteAs3603(CURRMODE_REG,0);//sink
	
	PM_EnableStepUp(trigger);
	
	PM_SetCurrent(1,val);
	
	PM_EnableCurrent(1,trigger);
	
}




void PM_SdCard(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetRf4Voltage(val);
	PM_EnableRf4(trigger);
}

/*
WiFi_1v8
*/
void PM_WiFi_1v8(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetDig1Voltage(val);
	PM_EnableDig1(trigger);
}

/*
nand flash
*/
void PM_NandFlash(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetRf3Voltage(val);
	PM_EnableRf3(trigger);
}

/*
cmos 
*/
void PM_Cmos(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetDig2Voltage(val);
	PM_EnableDig2(trigger);
}

/*
sim 
*/
void PM_Sim(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetSimVoltage(val);
	PM_EnableSim(trigger);
}

/*
z228_3v3
*/
void PM_Z228_3v3(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetAna1Voltage(val);
	PM_EnableAna1(trigger);
}

/*
z228_1v2
*/
void PM_Z228_1v2(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetBuckVoltage(val);
	PM_EnableBuck(trigger);
}

/*
WIFI
*/
void PM_WiFi_3v3(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}

	PM_SetAna2Voltage(val);
	PM_EnableAna2(trigger);
}

/*
SDRAM
*/
void PM_Sdram(double val)
{
	U8 trigger;
	
	if(val < MIN_PRECISION)
	{
		trigger = OFF;
	}
	else
	{
		trigger = ON;
	}
	
	PM_SetRf1Voltage(val);
	PM_EnableRf1(trigger);

	PM_SetRf2Voltage(val);
	PM_EnableRf2(trigger);
}


void PM_PowerOff(void)
{
	WriteAs3603(RESETCONTROL_REG, 0x02);	// Closed all power output
}

/*****************************************
Fuction:	Set Reset Timer
Input:		U8 value
					15ms的倍数,最小为1,最大为8
Output:		none
Return:		none
Modify:		qzsu 2006-12-16
*******************************************/
void PM_SetResetTimer(U8 value)
{
	if(value<1 || value>8)
	{
		return;
	}
	
	WriteAs3603(RESETTIMER_REG,value-1);
}

U32 PM_ForceReset(void)
{
	WriteAs3603(RESETCONTROL_REG, ReadAs3603(RESETCONTROL_REG)|0x01);

	return 1;
}


///////////////////////External///////////////////////////


⌨️ 快捷键说明

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