PIC18 中断问题

2020-02-09 09:37发布

void N_Nop (void)
{
        Nop ();
        Nop ();
        Nop ();
        Nop ();
        Nop ();
}


#pragma code InterruptVectorHigh = 0x08

void InterruptVectorHigh (void)
{
  _asm
    goto InterruptHandlerHigh //jump to interrupt routine
  _endasm
}

//----------------------------------------------------------------------------

// High priority interrupt routine
#pragma code

#pragma interrupt InterruptHandlerHigh

void InterruptHandlerHigh ()
{
        if (PIR1bits.TMR1IF)
        {                                           //check for TMR0 overflow
                PIR1bits.TMR1IF = 0;                                //clear interrupt flag

                TMR1H = 0xFD;                //65536 -768
                TMR1L = 0x12;

                LATJbits.LATJ3 = ~LATJbits.LATJ3;

                Nop ();
                Nop ();
                Nop ();
                Nop ();
                Nop ();
                Nop ();
                //N_Nop ();
        }
}
晶振为6.144MHz
中断程序如上,
问题:我是设置8K定时中断,RJ3取反,如果不调用N_Nop() ,用示波器测试 RJ3端口的,频率为4KHz是对的。
可调用了N_nop();或其他程序,测量RJ3端口的频率3.268KHz就不对了,不知道为什么,请高手指点下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。