我想实现这样一个功能。一个全局变量char data_temp=0;,当把IC的电源(5V)快速关闭,再快速打开,这个data_temp就会自加。断电久一点,data_temp就会变回0;我想到用欠压中断来实现这个功能,我感觉自己的逻辑没有错,但是效果并不好。。。代码如下
//欠压中断初始化,4.4v以下出发中断
void BOD_Init(void)
{
SYS->REGWRPROT = 0x59;
SYS->REGWRPROT = 0x16;
SYS->REGWRPROT = 0x88; //解除保护寄存器
SYS_EnableBOD(SYS_BODCR_BOD_INTERRUPT_EN,SYS_BODCR_BOD_VL_4_4V);
SYS->REGWRPROT = 0; //保护寄存器
NVIC_EnableIRQ(BOD_IRQn); //开中断
}
//中断服务函数
void BOD_IRQHandler(void)
{
SYS->BODCR |= SYS_BODCR_BOD_INTF_Msk; //清中断标志
if(SYS_GetBODStatus()) //VDD下降到4.4V 的中断
{
BOD_flag = 1;
}
if(!SYS_GetBODStatus()) //VDD恢复到4.4V以上中断
{
if(BOD_flag) //确保VDD先下降4.4V以下
{
BOD_flag = 0;
data_temp++;
}
}
}请各位指导一下。。
|