Quote Originally Posted by Megahertz View Post
Is it possible that using DT_INT could be the problem?
No, but using them the wrong way sure will.
Sitting in the interrupt handler sending serial data and pausing in a loop will stop anything else from happening in the main loop.

By the time you exit the handler, the timer has overflowed again, and it'll jump right back to the handler again for more loops pauses and DEBUG output.

Interrupts are meant to handle things immediately and fast.
Not to trigger a long series of statements that take longer than the period between interrupts.

Get in, do what you need to respond to the interrupt, then GET OUT.
Let the main loop handle any pauses and debugs.

99.9% of the time, there should never be a PAUSE in an interrupt handler.

And you should use the USART for serial data, not DEBUG/IN.