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就不对了,不知道为什么,请高手指点下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>