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