Цитата(demiurg_spb @ Jun 2 2014, 15:03)

При ПОСТ обработке весь разбор происходит.
А при накоплении данных никакой обработки - только чтение состояния параллельного порта ввода и сохранение в массив.
Вы считаете что DMA работает на частоте, превышающей частоту CPU?
Для регистрациии 10нс-импульсов потребуется считывать с GPIO с частотой как минимум ==200МГц.
CPU выбранный ТС имеет макс. частоту 168МГц.
И это не учитывая что GPIO обычно работает на частоте в разы ниже частоты ядра; не учитывая скорости памяти
(которая к тому-же внешняя понадобится).
Цитата(demiurg_spb @ Jun 2 2014, 15:03)

Ведь ТС ясно говорит, что длительность пачки импульсов не превышает 20мс...
При этом, благодаря ДМА и большому объёму ОЗУ, пост обработку можно проводить параллельно с накоплением второго (теневого) буфера...
Где это он такое говорит? Вот его слова:
Цитата(uu5jkb @ Jun 1 2014, 19:43)

Этой дорогой и пойду, если ничего другого не придумаю. Только импульсы от ФЭУ в перерывах между счётом не исчезают, надо будет регистр поставить, который в нужный момент будет их состояния запоминать.
И какая тут ещё может быть параллельная обработка процессором?
Во! если уж так хочется, то я придумал как можно DMA задействовать
ТСу не хвататет таймеров в CPU? Не беда! Заводим один источник импульсов на вход SCLK SPI-порта, переводим его в Slave, максимальная разрядность, настраиваем DMA
на приём с него в одно слово ОЗУ (без инкремента/декремента адреса).
И всё! По окончании интервала счёта считываем содержимое числа оставшихся пересылок DMA-канала, умножаем на разрядность SPI, делим на 2 - получаем число импульсов.
Хотя тут тоже - нужна разрядность SPI хотя-бы 16 (лучше - больше), и желательно - FIFO в SPI. И не забываем про счётчики-делители на входе перед CPU!