0537掉电中断问题
程序进不去低电压检测中断,低电压初始化程序如下:void lv_nin(void)
{
LVIMK = 1;
/* |------|------|------|------|------|------|------|------|*
|7 |6 |5 |4 |3 | 2|1 |0 |
LVIM|------|------|------|------|------|------|------|------|
|LVION |0 |0 | 0| 0|LVISEL|LVIMD |LVIF|
|------|------|------|------|------|------|------|------|*/
// LVIM = 0x84;//--------------------------------------------------------------LVION = 1 允许检测
//--------------------------------------------------------------LVISEL = 1 检测外部输入电压
//--------------------------------------------------------------LVIMD = 0产生中断信号
// LVIS = 0X00;//--------------------------------------------------------------检测等级为1.21v
LVISEL = 1;
LVIMD = 0;
LVION = 1;
delay_us(10);
LVIIF = 0;
LVIMK = 0;//打开掉电中断
}
中断函数如下:
#pragma vector = INTLVI_vect
__interrupt void PowerDown ( void )
{
//BT_SHUT = 1; //-------------------------------------------------------------打开电池供电
if(0 == LVIF)//-------------------------------------------------------------LVIF=0表示外部电压大于检测电压,
{
return;
}
delay_us(3);
if(0 == LVIF)
{
return;
}
LVIMK = 1;//----------------------------------------------------------------关闭掉电中断
WDTE = 0XAC;
}
请各位高手帮我分析一下! 问题已解决,原来是检测口输入电压过高的问题,之前检测口分压后为3.3V调整为2.6V后能进入中断了!
页:
[1]