和
if(OSIntNesting==0)
{
EA=0;
C_XBP=OSTCBCur-> OSTCBStkPtr;
#pragma ASM
MOV SP, SaveSP
MOV SaveSP, #0
POP IE
#pragma ENDASM
}
仍然不能動作,程式依然不能正常工作,所以想請問您是不是我還少加上了什麼東西,或是什麼沒有去修改到呢?
以下是我的中斷程序
void pwm_int(void) interrupt 3
{
OSIntEnter();
TR1=0;
if(SaveSP)
return;
if(OSIntNesting==1)
{
#pragma ASM
PUSH IE
CLR EA
MOV SaveSP, SP
#pragma ENDASM
OSTCBCur-> OSTCBStkPtr=C_XBP; /* OSTCBCur-> OSTCBStkPtr is free now, so it can be used to story the value of SP */
}
if(P1_0)
TH1=50;
else
TH1=255-50;
P1_0=!P1_0;
TR1=1;
OSIntExit();
if(OSIntNesting==0)
{
EA=0;
C_XBP=OSTCBCur-> OSTCBStkPtr;
#pragma ASM
MOV SP, SaveSP
MOV SaveSP, #0
POP IE
#pragma ENDASM
}
}
謝謝大家百忙抽控回答一下,謝謝!