4
マイクロチップ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 ....これは高割り込みのコードで、2つの機能が同等に優先順位付けされています。もう一つのプラグマがあります - > #pragma lowinterrupt InterruptHandler ........またはmaby私は間違っているので、フローとステッパーは異なる優先順位を持っています。 – Christian