ソフト設計がおかしいって言ってるの
いかにも初心者が作った感じ

各要素どれだけの処理遅延が許されるかを考えて
それぞれ適した場所で処理するものだ

UART受信は1msの遅延で取りこぼす
エンコーダーは1ms遅延までは許容する
液晶表示は20ms遅延まで問題ない
DDS設定は50ms遅延まで許容
じゃあUART受信とエンコーダーのカウントは割り込みで処理
他は割り込みじゃない普通の処理で
UART取りこぼしよりはエンコーダー取りこぼしの方が影響が少ないから
割り込み優先順位はUART受信の方が上

とかって決めるもの

アセンブラを使った最適化なんてのはもっとずっと後