1. Ответить на запрос
2. Заняться сложными математическими расчётами
В каком порядке делать эти два действия?
Можно поставить целью наибольшую скорость ответа. Тогда мы отвечаем сразу, а потом начинаем считать. Однако это приводит к неожиданным последствиям.
Я сижу на другом микроконтроллере и направляю первому запрос. Получаю ответ. Отлично, можно слать следующий запрос. Но не тут-то было. Если слать запросы слишком часто, начала пакетов будут пропадать, потому что когда я шлю очередной запрос -- первый .микроконтроллер всё ещё выполняет вычисления [по некоторым причинам они непрерываемы даже при помощи прерываний].
Поэтому надо наоборот -- сначала доделать вычисления, а потом уже отправлять ответ.