2013-07-09 1 views
0

디버그 출력을 UART로 출력하는 기능이 있습니다. 이 함수가 작동 할 때 인터럽트가 발생하면 인터럽트의 디버그 출력이 이전 디버그 텍스트를 중단시킵니다. 그래서 저는 다음과 같은 것을 가지고 있습니다 : "03:32:46 데이터로드 중 fr03 : 32 : 46 버튼 누름". 몇 가지 해결책을 생각해 봅니다. 인터럽트를 비활성화하는 대신 디버그 출력을 비활성화하는 대신 다른 디버그 인쇄 기능을 사용하지 않는 것이 좋습니다. 이 문제를 해결하기위한 좋은 방법은 무엇입니까?인터럽트에서 함수 재진입

+0

실제로 ISR의 인쇄 문과 같은 것은 아닙니다. 속도가 느리고 재발행되지 않을 수 있습니다. – LostBoy

답변

0

기본적으로 ISR에 인쇄 명령문을 쓰지 마십시오. 성능에 영향을 미칠 수 있습니다. ISR이 호출되었는지 (예 : 버튼 누름) 알고 싶으면 출력 핀을 설정하고 연결된 LED를 토글하여 시도하십시오.

플래그를 설정하거나 간단한 계산을 수행하려면 ISR을 사용하십시오.

+0

좋은 조언입니다. 그러나 나는 ISR에서 많은 일을하는 시스템을 가지고있다. 다시 디자인해야합니다. 그러나 지금 나는 그것을 실제로하는 방법을 실제로 모른다. – LVitya