PIC をスリープ状態にすることに成功しましたが、外部割り込みを使用して PIC をウェイクアップさせたいと考えています。しかし、PIC は無限ループに陥り、自分自身を起動しています。この問題を解決するにはどうすればよいですか? コードは次のとおりです。
#include<p18f2550.h>
#include<delays.h>
void main()
{
TRISB = 0x20;
TRISA = 0x00;
TRISC = 0x00;
INTCONbits.GIE = 1;
INTCONbits.RBIE = 1;
while(1)
{
PORTA=0xff;
Delay10KTCYx(500);
PORTA=0x00;
Delay10KTCYx(500);
PORTA=0xff;
Delay10KTCYx(500);
PORTA=0x00;
Delay10KTCYx(500);
PORTA=0xff;
Delay10KTCYx(500);
_asm
sleep
_endasm
}
}
#pragma interrupt ISR
void ISR(void)
{
if (INTCONbits.RBIF == 1)
{
if(PORTBbits.RB5 == 1)
PORTA = 0x00;
}
INTCONbits.RBIF = 0;
}