现在在做个项目,用PIC16F628A来做,因为是小型产品,要求有低功耗功能。当我在中断里加入SLEEP();指令时单片机就复位了,设置的配置字为0x0038,不知道大家有没遇到到这个问题呀。用外部中断RB0/INT引脚
下面是部分程序:
__CONFIG (0x0038);//配置位
void interrupt time0()
{
if(flagtime2min)//进入睡眠模式
{
counter2min++;
if(counter2min==20000)//2min240000
{
flagtime2min=0;
counter2min=0;
PORTB=0xfe;
TRISB=0x01;
TRISA=0x23;
PORTA=0xe7;
INTE=1;
INTF=0;
GIE=1;
PEIE=1;
NOP();
NOP();
SLEEP();//睡眠模式
}
}
}
if(INTF)//外部中断唤醒睡眠
{
INTF=0;
INTE=0;
TRISB=0x0;
PORTB=0xfe;
counter=0;
T0IF=0;
TMR0=252;
counter=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
还有为什么要在中断里休眠??
一周热门 更多>