Timer의 ISR에서 UART를 사용하고자하므로 msp430에서 중첩 된 인터럽트를 활성화하려고합니다. 도움이 될 것입니다.msp430g2553에서 중첩 된 인터럽트를 활성화하는 방법은 무엇입니까?
0
A
답변
1
마이크로 컨트롤러가 인터럽트 처리기 기능을 실행하려고 할 때마다 우선 상태 레지스터 r2
의 비트 인 전역 "인터럽트 활성화"플래그를 비활성화해야합니다. 이는 기본적으로 인터럽트 중첩을 효과적으로 금지합니다.
이 문제를 해결하려면 인터럽트 처리기 기능을 시작할 때 레지스터 플래그를 다시 1로 설정하여 인터럽트를 사용하도록 설정하십시오. 구문을 단순화하기 위해,이를 위해 실제로 eint
명령있다 :
asm("eint");
일반적으로 당신이 어셈블리 코드를 작성 피할 수 있도록 emnabe에 대한 컴파일러 특정 매크로도 있습니다. 이는 GCC 및 IAR로 모두 작동해야합니다.
__enable_interrupt();
(남용하지 마십시오 그것을 위해 절대적으로 필요가 없습니다 대부분의 경우 중첩 인터럽트 그것은 갈 것보다 설계를 변경하는 거의 확실하게 더 좋은 생각이다. .)