Речь изначально шла о регистраторе на шине CAN с возможностью записи
измерений длиной 200 микросекунд и размером платы 40x40 мм.
Он показался мне чем-то похожим на осциллограф. Как-то так.
То, что Вы имеете ввиду выглядит, видимо, так:
1.Записать «Старт» в регистр АЦП.
2.Считать готовность (окончание оцифровки).
3.Если нет готовности, вернуться к шагу 2.
4.Положить результат в буфер.
5.Нарастить индекс буфера.
6.Проверить границу.
7.Если не конец, вернуться к шагу 1.
8.Сигнализировать завершение.
Между стартом (шаг 1) и готовностью (шаг 4) — 400 нс.
На запуске — не проблема, я всегда это делаю (по крайней мере в STM).
А вот в работе. Тут вопрос. И, кроме резервирования, ничего в голову не приходит.
Но это совсем отдельная тема. Хотя, весьма интересная.
Конечно, если аккуратно делать и не пытаться нарушить законы физики, то
все получится. Но, иногда хочется написать так, чтобы еще раз можно было
использовать, когда время подожмет.
Ассемблерные куски, например, если предварительно не описать красиво (когда самому нравится) в виде блок-схемы, то отлаживать очень трудно.
Но, что не сделаешь ради любопытства.
Я Вам скажу больше. Можно сделать даже 128 уровней прерывания. Для этого есть
системный регистр AIRCR. Только не совсем понятно, зачем запихивать весь функционал в обработчики прерываний. Через три месяца я такой код сам перестану понимать.
измерений длиной 200 микросекунд и размером платы 40x40 мм.
Он показался мне чем-то похожим на осциллограф. Как-то так.
который имеет еще и виртуальный COM порт.
Можно по нему передать результат на PC.
Там 3 16-и битных ADC по 3.6 МГц. Шаг 100 нс может получиться из 3 ADC.
Но это будет несколько дороговато.
Поэтому понадобился конвейер. А там шаг 100 нс.
И для освоения серии STM32G4xx.
1.Записать «Старт» в регистр АЦП.
2.Считать готовность (окончание оцифровки).
3.Если нет готовности, вернуться к шагу 2.
4.Положить результат в буфер.
5.Нарастить индекс буфера.
6.Проверить границу.
7.Если не конец, вернуться к шагу 1.
8.Сигнализировать завершение.
Между стартом (шаг 1) и готовностью (шаг 4) — 400 нс.
А вот в работе. Тут вопрос. И, кроме резервирования, ничего в голову не приходит.
Но это совсем отдельная тема. Хотя, весьма интересная.
все получится. Но, иногда хочется написать так, чтобы еще раз можно было
использовать, когда время подожмет.
Ассемблерные куски, например, если предварительно не описать красиво (когда самому нравится) в виде блок-схемы, то отлаживать очень трудно.
Но, что не сделаешь ради любопытства.
системный регистр AIRCR. Только не совсем понятно, зачем запихивать весь функционал в обработчики прерываний. Через три месяца я такой код сам перестану понимать.
Я там digitman. Я Вам пришлю. Но оно пока мало полезно. Просто работоспособность проверена.