Ответ: и затем ф-ия считывания:
unsigned char AD7858_0_Read(){
unsigned char data=66;
PORTE CLR_B (7);
//sync data = spi(0x00);
PORTE SET_B (7);
strob_CNV0();
while (ADC_BUSY0 == 1);
return data;
}
Сдаётся мне, что всё неверно в корне и тема не для раздела АВР, а для схемотеники скорее. Например, что на входе CLKIN?
Я-бы, с пьяных глаз, так сделал если "в лоб" (запустить преобразование по Figure 2 и считать данные. кстати, ф-ция spi возвращает-ли данные?):
unsigned int AD7858_0_Read(){
unsigned char data_tmp;
PORTE CLR_B(6);
while (ADC_BUSY0 == 1);
PORTE SET_B(6);
while (ADC_BUSY0 == 0);
PORTE CLR_B (7);
data_tmp = spi(0x00); // Думаю, тут и в следующей строке надо не 00, а что-то подходящее по смыслу, вроде выбора следующего канала
data = (data_tmp << 8) + spi(0x00);
PORTE SET_B (7);
return data;
}