- 打卡等级:初来乍到
- 打卡总天数:7
- 最近打卡:2025-04-24 08:05:57
中级会员
- 积分
- 457
|
电路图如STC8H参考手册中27.2【RTC实战线路图】
外部供电消失后,确实进入了比较器中断,证据:指示灯引脚有变成高电平。并且成功进入了掉电模式,证据:电池耗电电流2.75uA。
但是恢复供电以后,没有重启。应该是查询比较器结果那块出了问题,掉电唤醒专用定时器应是起了作用的。证据:多次插拔外部供电,P36引脚变化。
1、请教一下关于查询电量恢复那块,是有什么问题。
2、发现若整个系统没有外部供电,单以电池供电,一上电的话,单片机程序没有启动,然后电池以mA级的电流消耗,有哪些可能的原因,是发生了什么问题。证据:若单片机程序启动,P36引脚会有200ms的电平变化。
void CMP_ISR(void) interrupt INTERRUPT_CMP
{
CMPCR1 &= ~CMPIF; //清除比较器中断标志位
//处理语句
//关耗电设备
P54 = 1; //关闭传感器
P33 = 0; //停用阀
P35=P36=1; //关闭指示灯
CMPCR1 &= ~CMPEN; //关闭比较器
ADC_CONTR = 0; //关闭ADC
EA = 0;
//掉电记录
RecordAdd(RECORD_TYPE_POWER_DOWN);
//置不为高阻模式的IO口为高阻模式
GPIO_Init(IO_P1,0xFF,IO_GZ,1); //高阻模式
GPIO_Init(IO_P3,0xFF,IO_GZ,1); //高阻模式
GPIO_Init(IO_P5,0xFF,IO_GZ,1); //高阻模式
SYSTEM_PD(); //进入掉电模式
while (1)
{
CMPCR1 |= CMPEN; //使能比较器
//延时15us
Delay15us();
if (CMPCR1 & CMPRES) //若电量恢复
{
SYSTEM_RESET_USER(); //重启
} else {
CMPCR1 &= ~CMPEN; //关闭比较器。期间等待掉电专用定时器唤醒
SYSTEM_PD(); //进入掉电模式
_nop_();_nop_();_nop_();_nop_();
P36 = !P36;
}
}
}
|
|