4
如果我在Microchip C18上使用多箇中斷,是否必須禁用高中斷?我必須在一箇中禁用中斷嗎?
考慮下面的代碼:
#ifndef OTHER_INTERRUPT_H
#pragma interrupt InterruptHook // interrupt fname
void InterruptHook(void)
{
#ifdef STEPPER_H
Stepper_Interrupt();
#endif
#ifdef FLOW_H
Flow_Interrupt();
#endif
}
#endif
我應該按照相同的方法在這裏下面的代碼? (然後我會將禁用放在功能內的適當位置。)
#ifndef OTHER_INTERRUPT_H
#pragma interrupt InterruptHook // interrupt fname
void InterruptHook(void)
{
#ifdef STEPPER_H
INTCONbits.GIEH = 0;
Stepper_Interrupt();
INTCONbits.GIEH = 1;
#endif
#ifdef FLOW_H
INTCONbits.GIEH = 0;
Flow_Interrupt();
INTCONbits.GIEH = 1;
#endif
}
#endif
hm ....這是高中斷內的代碼,兩個函數同等優先。我還有一個編譯指示 - > #pragma lowinterrupt InterruptHandler ........或者maby我錯了,所以流程和步進器有不同的優先級。 – Christian 2012-01-07 13:04:04