Цитата(Kannikkiy @ Nov 11 2009, 21:38)

При написании прошивки для МК встал вопрос как из этих 3 байт вытащить значение измеренного напряжения, т.е. расшифровать принимаемые данные? В даташите структура датарегистров не отображена. Возможно это стандартный вид передачи информации, но мы о нем не знаем.
Это обычное число в двоичном формате. Обычно бывает достаточно приписать спереди еще один (старший) байт, содержащий нули, чтобы получилось типичное число типа
unsigned long (32-битное беззнаковое целое). В тех случаях, когда АЦП работает в дифференциальном режиме, то выдаваемое им число может оказаться со знаком. Тогда приписываемый спереди байт заполнятеся нулями только в том случае, если старший бит данных является нулем, или заполняется полностью двоичными единичками, если старший бит является единичкой. Этот метод носит название "расширения знака", т.к. здесь старший бит данных распростаняется на всю приписываемую спереди часть. Последнее не есть какая-то специфика АЦП, а представляет собой типичный метод, которым более короткое знаковое число копируется в более длинное.
Короче говоря, берете число типа
long, зануляете его, запихиваете 24-битные данные от АЦП в его младшие 3 байта, а потом разбираетесь с тем, что получилось. Оно окажется либо пригодно сразу, либо потребует минимальную коррекцию:
if (xlong >= 0x800000) xlong |= 0xFF000000;