Цитата(data_stack @ Dec 1 2015, 19:55)

Еще вопрос: как лучше делать с т.з энергопотребления - копить большой буфер и скидывать на карту большим куском, или мелкими порциями
вариант 3:
Имеем большой пустой буфер, есть диаграмма опроса 3-х АЦП каналов (каждый со своей частотой), CPU работает на предельно малой частоте (1МГц или ниже, PLL выкл.),
по диаграмме запускает очередное преобразование для очередного канала (внутри ISR), затем выходит из ISR в фоновый цикл команды WFI, до след. прерывания, в котором считывает полученное значение, записывает в буфер без какой-либо обработки, запускает след. преобразование если буфер ещё не заполнен.
И так - пока не заполнится буфер. По его заполнению включаем PLL, разгоняем CPU, в фоновом процессе обрабатываем накопленный буфер (пакуем, сортируем и т.п.) и пишем на SD. В это время измерительный процесс в ISR
продолжает работать (частота работы АЦП не должна измениться при увеличении тактовой CPU), но пишет во 2-й буфер.
После записи на SD опять понижаем частоту ядра.
Процесс повышения/понижения тактовой частоты должен быть реализован так, чтобы не нарушал временную диаграмму работы процесса чтения АЦП.
DMA здесь не нужен и такой алгоритм работы будет думаю самым экономичным.