По каждому каналу определить среднее арифметическое и большее значение передать по SPI на скорость 100 кГц с указанием номера канала. Начало обмена задает приемник информации, ввод – по прерыванию. Передача возможна, если цикл измерения завершен. Предусмотреть буфер для хранения результата.

Код: Выделить всё
for (i=0; i<=15; i++)
{
ADMUX=0; //выбираем канал 0 АЦП
ADCSRA|=0x40; //запускаем преобразование
while (j==0)
{
j=ADCSRA.4; //определяем состояние флага завершения преобразования АЦП
} //ждем завершения преобразования
channel0[i]=ADCW; //содержимое АЦП присваиваем массиву данныхв чем тут проблема?
и про SPI.. что подключить в протеусе? как называется?
и верно ли написан код
Код: Выделить всё
// Максимальное среднее значение по всем каналам - USR, номер канала - j
//Определяем был ли запрос на передачу (по флагу прерывания) и передаем данные по SPI
i=USISR.7;
if (i==1) //если был запрос на передачу, передаем данные
{
USIDR=USR;
USISR|=0x40; //инициируем процесс передачи
while (i==0)
{
i=USISR.6; //определяем состояние флага завершения передачи
}
};
};




