【关于一个充电器的逻辑问题】
我现在用io口去检测一个充电器和负载是否插入,现在客户要求充电器插入后,led显示电量,如果充满后就休眠。如果温度异常的话,led就2HZ闪烁。如果充电器中途拔掉,延迟2min后就关机,现在我就不知道怎么去在 void Charge_detect(void){
if(t1_ms50==1)
{
t1_ms50=0;
if((CID==0)&&(DID==1)) //充电器接入//反推充电器接入
{
CHG=0; DSG=1; //打开充电mos,关放电mos
if((Ad_temp<OVERTEMP)&&(Ad_temp>LOWTEMP))//温度正常
{
if(CID==0) //再次检测充电器是否接入
{
Soc_Detect();//Soc电量显示
}
else if(CID==1)// 如果充电器拔掉,就准备进入休眠
{
if((min_2==1))
{
min_2=0;
POWEROFF();
}
}
}
else if(Ad_temp<LOWTEMP||Ad_temp>OVERTEMP)//温度异常
{
if(ms650_time==1) //温度异常后,灯闪烁2HZ
{
ms650_time=0;
LED1^=1;
LED2^=1; //否则灯闪烁表示温度异常 2HZ频率
LED3^=1;
LED4^=1;
LED5^=1;
}
}
}
上面的是我写的,感觉中途拔掉充电器后,定时器2min后就中断了,跟我拔掉充电器后2min没有搭边? 客户要求的不是2min后休眠,是拔掉充电器后2min休眠? 我想在拔掉充电器后做一个标志位,关闭定时器再开启,再查询标志位。不知道这个方法怎么样!
页:
[1]