А вот так читаю: if (channel == 1) {
ADC_WRITE(0x20);
ADC_WRITE(0x04);
while (1) {
if (channel == 1) ADC_WRITE(0x08); // хотим читать communication register в ожидании DATAREADY
else ADC_WRITE(0x08|0x01); // хотим читать communication register в ожидании DATAREADY
data_byte = ADC_READ_BYTE() & 0x80; // Пока не готовы данные
if (data_byte==0) break;
_WDR();
}
}
else {
ADC_WRITE(0x21);
ADC_WRITE(0x04);
while (1) {
if (channel == 1) ADC_WRITE(0x08); // хотим читать communication register в ожидании DATAREADY
else ADC_WRITE(0x08|0x01); // хотим читать communication register в ожидании DATAREADY
data_byte = ADC_READ_BYTE() & 0x80; // Пока не готовы данные
if (data_byte==0) break;
_WDR();
}
}
while (1) {
if (channel == 1) ADC_WRITE(0x08); // хотим читать communication register в ожидании DATAREADY
else ADC_WRITE(0x08|0x01); // хотим читать communication register в ожидании DATAREADY
data_byte = ADC_READ_BYTE() & 0x80; // Пока не готовы данные
if (data_byte==0) break;
_WDR();
}
if (channel == 1)ADC_WRITE(0x38); else ADC_WRITE(0x39);
data = ADC_READ();