Why isn't UART TX interrupt being called from within another ISR?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Why isn't UART TX interrupt being called from within another ISR?

Jump to solution
541 Views
asfarley
Contributor IV

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?

Labels (1)
0 Kudos
1 Solution
450 Views
asfarley
Contributor IV

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. 

View solution in original post

0 Kudos
1 Reply
451 Views
asfarley
Contributor IV

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. 

0 Kudos