/*******************************************************************************
* Func
tion Name : PowerMonitor
* Description :
电源监控
* Input : s:
ENABLE - 打开此功能
DISABLE - 关闭此功能
* Return : None
*******************************************************************************/
void PowerMonitor( UINT8 s )
{
if( s == DISABLE )
{
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
R8_BAT_DET_CTRL = 0;
R8_SAFE_ACCESS_SIG = 0;
}
else
{
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
R8_BAT_DET_CFG = 1; // 2.05V - 2.33V
R8_BAT_DET_CTRL = RB_BAT_DET_EN;
R8_SAFE_ACCESS_SIG = 0;
mDelayuS(1);
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
R8_BAT_DET_CTRL = RB_BAT_LOW_IE|RB_BAT_LOWER_IE|RB_BAT_DET_EN;
R8_SAFE_ACCESS_SIG = 0;
}
}
为什么这个寄存器R8_BAT_DET_CTRL要设置两次,而且第二次的设置内容还有一个一样的
R8_BAT_DET_CTRL = RB_BAT_DET_EN;
R8_BAT_DET_CTRL = RB_BAT_LOW_IE|RB_BAT_LOWER_IE|RB_BAT_DET_EN;
开关两次寄存器,而不是一次性设置所有参数
R8_SAFE_ACCESS_SIG
是为了避免这个原因吗:此后约 16 个系统主频周期(Tsys) 都处于安全模式下