задержка в тактах, методами си

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Open
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

задержка в тактах, методами си

Сообщение Open »

Доброго дня!
Возник вопрос, решающийся локально, но положиться на эту реализацию стремно...
итак, генерирую синхроимпульс, после которого начинаю долбить ацп с максимальной частотой(2МГц).. однако, хочется 4 :)
Ну, не беда, думаю я: процесс достаточно стационарный : проведу и обобщу 2 измерения - влеплю ка я каждый второй раз между запускающим синхроимпульсом и началом сбора информации задержку, составляющую половине периода дискретизации (в моем случае 0.25мкс или 30тактов 120МГц-процессора).
Далее пишу в кейсе какую то левую муру,дабы она реализовалась в холостые такты, дизассемблером и таблицами проверяю, что результат достигнут..

Однако же.. Кто гарантирует, что при смене компилятора, или его опций, или же просто в будущем введя локальную переменную "где то" я нарушу строгое построение сегодня-откомпелированного кода и в панике буду клеймить высшие силы и призывать бубен, ибо вчера это все работало :)

Пожалуйста, посоветуйте способ, если конечно он существует!
P.S. или все таки ассемблер?
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: задержка в тактах, методами си

Сообщение uk8amk »

DMA
External trigger option
Channel by channel programmable sampling time

Если всё это грамотно соединить воедино, то можно очень гибко настраивать задержки.

ЗЫ. Касается STM32, но по идее у остальных должно быть аналогично.
Реклама
Open
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Re: задержка в тактах, методами си

Сообщение Open »

uk8amk писал(а):Касается STM32
Да, это действительно STM32.
Самплинг тайм не спасает, ибо этот ряд в конечном счете:3+12,15+12,28+12,56+12 и тд. циклов, а при тактировании модуля АЦП 30мгц только 3+12 дает 2мгц преобразований. То есть, хотя инструмент и есть, но он не годится на максимальной частоте.
ДМА задействовано - собираю последовательность из 1024 измерений.

Остается запуск от внешнего триггера, скажем счетчика, запрограммированного на 2мгц с нужной скважностью (скажем, передний фронт импульса обоих последовательностей совпадает, а задний(запускающий преобразование) разнится на 0.25мкс.
Однако, со счетчиками-таймерами до сих пор работать не приходилось, но есть определенные сомнения, что их удастся так запрограммировать: Пошел курить мануал :)

ЗЫ задействовать очередной модуль всегда немного жадно - миллиамперная жаба душит!
Ответить

Вернуться в «ARM»