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 ....이 코드는 높은 인터럽트 내에서 두 가지 기능이 똑같이 우선 순위가 지정됩니다. 나는 하나 이상의 pragma -> #pragma lowinterrupt InterruptHandler ........ 또는 maby 그래서 나는 잘못 했으므로 흐름과 스테퍼는 다른 우선 순위를 가진다. – Christian