MCU: K22F
I have one interrupt (generated by a Processor Expert ExtInt component) configured as Low priority. Inside the low-priority interrupt I want to send some serial port data.
I have UART0 configured in interrupt-mode with TX interrupt priority High.
Each is working independently: I can send and receive bytes on UART0, and the ExtInt is triggering as expected. However, when I attempt to transmit some bytes inside the ExtInt ISR, I don't see the bytes actually being transmitted until after the ExtInt ISR has completed. Basically, it's working as if the UART0 TX interrupt is actually a *lower* priority than the ExtInt priority.
How is this possible?
解決済! 解決策の投稿を見る。
Well, I think I figured it out. Underneath all the Processor Expert stuff, ExtInt was using a PORTB ISR. The PORTB ISR was configured to Highest Priority.
I blame this on unclear PE configuration; it seems a bit misleading that I have to go digging through PORTB interrupt priorities because they're mysteriously affecting things in the background. It doesn't make any sense to allow PE to configure a lower-priority interrupt for ExtInt if it's already running inside a high-priority PORTB ISR.
Well, I think I figured it out. Underneath all the Processor Expert stuff, ExtInt was using a PORTB ISR. The PORTB ISR was configured to Highest Priority.
I blame this on unclear PE configuration; it seems a bit misleading that I have to go digging through PORTB interrupt priorities because they're mysteriously affecting things in the background. It doesn't make any sense to allow PE to configure a lower-priority interrupt for ExtInt if it's already running inside a high-priority PORTB ISR.