Генератор микросекундных импульсов

Нет ответов
a_l_e_x_Z
Offline
Зарегистрирован: 09.11.2017

Здравствуйте жители форума.
Мне нужно сделать генератор импульсов длительностью 1-10 микросекунд и частотой от 1-400 килогерц с контролем тока импульса.
 

Насколько я понимаю для 328меги эта задача непосильна по этому буду пробовать делать на STM32F103C8T6 с ардуино.

Как я вижу алгоритм решения этой задачи-
Использую два таймера с прерываниями по сравнению без пред делителя…
 

Старт (оба таймера начали считать и на ножке порта лог-1)

/
отсчитываем 30 импульсов
/

Прер.  Т1 по первому сравнению  (Считываем показания АЦП и записываем в переменную)

/
отсчитываем 42 импульса (30+42=72 = 1мкс. при 72мГц тактовой час.)
/

Прер.  Т1 по второму сравнению  (пишем в порт лог-0, отключаем тактирование Т1, обнуляем Т1 )

/
отсчитываем 108 импульсов (в суме 180 тактов для 400 кГц при 72мГц тактовой час.)
/

Прер. Т2  (Обнуляем Т2, пишем в порт лог-1, включаем тактирование Т1 )
/
отсчитываем 30 импульсов
/

И дальше по кругу….
 

И собственно вопрос к знатокам, успеет ли контроллер опросить АЦП и записать значение в порт за 42 такта? И может есть более правильный вариант реализации этой задачи?
 

Пока писал понял что это можно сделать на одном таймере и трех сравнениях но вопрос с АЦП остается открытым…