📄 power.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 + -