Почти "победил". Положительные значения считываю без проблем, а вот с отрицательными бяда...
Протокол довольно простой
[spoiler][/spoiler]
Опуская настройки таймингов, функция чтения выглядит так.
Код: Выделить всё
ads_output = 0;	
byte1=SPI.transfer(0x00); //  прием старшего байта
byte1=byte1<<16; // двигаем старший байт влево на два байта
byte2=SPI.transfer(0x00); //  прием среднего байта
byte2=byte2<<8; // двигаем средний байт влево на один байт
byte3=SPI.transfer(0x00); //  прием младшего байта
ads_output =byte1|byte2|byte3; // собираем три байта данных с АЦПКод: Выделить всё
long int byte1; 
unsigned int byte2; 
unsigned int byte3;
long int ads_output= 0;Код: Выделить всё
if((ads_output&0x800000)==0x800000)	
{
	ads_output |= 0xff000000;		
}SPI_MODE по умолчанию (должен быть SPI_MODE0).
Что я делаю не так?