Цитата(_Anatoliy @ Aug 4 2018, 10:39)

Я по приёму первого байта (команды) сразу записываю в SPDR байт для отправки, а на выходе MISO при записи следующего байта выползает первый байт сообщения(мой код команды).
Все правильно: при записи в мастером в SPDR значения для посылки слейву, запускается механизм обмена и в результате которого из слейва передается записанное в SPDR ранее. По приему слейвом первого байта, в Вашем случае команды, первый байт из слейва уже пришел к мастеру - для передачи записанного байта для отправки нужна инициация обмена со стороны мастера.
Тут два пути: записывать в SPDR байт для отправки заранее, либо со стороны мастера инициировать обмены пока не прийдет ожидаемый пакет.
Имхо, лучше организовать обмен в стандартном режиме: маркер начала, длина данных, данные, контрольная сумма.
Тогда у Вас отпадает необходимость в синхронизации запросов/ответов слейва.
Мастер, отослав командный пакет, может некоторое время гнать незначащие байты, в надежде получить ответ.
Сообщение отредактировал aiwa - Aug 4 2018, 12:34