Отлично, прогресс. Датчик ни при чём, АЦП ни при чём. "Если шлю
константу - то всё нормально, если шлю медленно меняющийся сигнал
видны сбои". Чисто программный баг. Сопоставить полученную сбойную
информацию с отправленной можно? Допустим вместо 1000 приходит
1256, значит та самая "атомарность доступа", о которой пишет Nikolay_Po. Вот подозрительное место "значение с АЦП берётся по таймеру(в обработчике прерываний), в
том же таймере данные эти значения заносятся в</i>
область данных объекта сообщений</i>". Область данных, насколько я понимаю, это массив байтов, в случайное относительно передачи время в пакет для отправки кладётся ПОБАЙТНО значение для отправки. Идет передача, отправили один байт данных, а тут приходит прерывание, и значение обновилось, а там произошел перенос из младшего байта в старший, значение было 0xff, стало 0x100, а в канал ушло 0x1ff. Нужно копировать данные через промежуточный буфер и запрещать одновременный доступ к нему из двух мест. Ну или что-то еще, но для начала стоит проверить эту версию.