gha20028 发表于 2010-12-1 16:20:18

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;
}

请各位高手帮我分析一下!

gha20028 发表于 2010-12-1 16:47:55

问题已解决,原来是检测口输入电压过高的问题,之前检测口分压后为3.3V调整为2.6V后能进入中断了!
页: [1]
查看完整版本: 0537掉电中断问题