0

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

0 に答える 0