硬件环境: AC781X demo板
软件环境: keil 5.23
当我们采用电池供电的时候,会遇到电池电量逐渐衰减而导致电压降低,这个时候可以使用AC7811的可编程电压检测功能,当检测到电压低于一定值的时候中断提示,以便客户可以在芯片断电前做一些措施。
代码实现也不复杂,这里设置的是2.65V低压检测,以及2.7V可编程电压检测,当采用电池供电,芯片供电电压低于2.7V时,就会产生PVD_Handler。例程通过LED观察现象。
int main(void)
{
InitDelay();
InitDebug();
SPM_SetLVDTriggerLevel(0); ///<2.65V
SPM_SetPVDTriggerLevel(0); ///<2.7V
SPM_EnablePVD(1);
SPM_EnableLVD(1);
WriteBitsValue(0x40008000, 0, 1, 0x01); /* enable spm power */
SPM_EnableModuleWakeup(SPM_MODULE_PVD, ENABLE);
GPIO_SetDir(GPIO_PB9, 1);
GPIO_SetDir(GPIO_PB10, 1);
LED2 = 0;
LED3 = 1;
NVIC_ClearPendingIRQ(PVD_IRQn);
NVIC_EnableIRQ(PVD_IRQn);
while(1)
{
}
}
void PVD_Handler(void)
{
// printf("a PVD interrupt happened\r\n");
LED2 = 1;
LED3 = 0;
}
参考例程:
LVD_sample.rar
(557.32 KB)
|