Цитата(yarunt @ Mar 15 2007, 08:07)

Подключая АД9280 , быстрый ацп , столкнулся с ситуацией быстрой записи из порта в срам авра.
Частота процессора 16 мег и адс. Все условия типа if,else не использую так-как занимают от 5 до 8 циклов, 67(количество колонок в дисплее) раз делаю запись из порта подключеного адс в срам ,с инкрементом.Такой доступ должен мне должен какбы обеспечить доступ в срам за 2 цикла. Тоесть полезный каждый 2-й цикл,значит 8 мгц выборки.Чтоб увидеть синусоиду на дисплее мне нужно как минимум 5 выборок , делю 8мгц на 5 выборок получаю полезных 1.6 мгц.
Но не тут-то было, получается 300 кГц с натягом, подскажите может где-то я в расчетах ошибся?
Проект не могу показать так-как в алгоритм билдере. Приму любую критику на свой счет.
Максимально возможной быстроты записи данных из АЦП во внутреннюю память можно достичь двумя командами, повторенными в вашем случае 67 раз.
Код
in r16,pinе
st x+,r16
Занимает 3 такта на выборку. При 16 МГц это даст 5.3 Мвыборок/с. Для пробника неплохо. Быстрее нельзя, нет никакой возможности. Для синхронизации выборок подайте клоки на АЦП, тогда без труда (в смысле без затрат на синхронизацию) будете читать каждую третью выборку.
Вот такое предложение, но надо забыть про билдер, си и писать на ассемблере. Не хочу разжигить религиозные войны, но си реально замедляет работу программы в 5-10 раз, что для обработки быстрых процессов неприемлемо.
Кстати, идея не моя, она уже реализована, к сожалению, не могу найти ссылку, на компе порядка 300000 неразобранных файлов, уже трудно ориентироваться(:-(.