Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Архив » STM32 TIMx Time base generator


STM32 TIMx Time base generator

Сообщений 31 страница 40 из 40

31

Atomic-dm написал(а):

Т.е. получается что аппаратная часть всегда работает ?

Да... аппаратная часть всегда работает... если она настроена соответствующе... Что вас так удивило??? На этом и основаны фишки СТМ32... Так на таймерах, ДМА и периферии... можно вязать замысловатые аппаратные кренделя... если доступные ресурсы позволяют... Это не ПСОК... конечно... но всё же...
Подобные вопросы возникают из-за ограниченности описания работы таймеров в референсе... которая при аппаратном и софтварном воздействии имеют определённые различия... Но... как правило... подобными вопросами мало кто и заморачивается...

32

Спасибо за оперативный ответ!
Ну для меня это было честно сказать неожиданностью. Фишки такие СТМ32 конечно интересные в массе своей, но в моем конкретном случае это больше неудобство... придется что-то придумывать и рассматривать вариант с EXTI.  Удивительно что действительно в интернете про это не пишут, да и в доках что-то не помню чтобы это было описано.
еще раз спасибо за ответ.

33

Atomic-dm написал(а):

когда работает обработчик, таймер не должен аппаратно сработать

почему вам так казалось? я недоумеваю? откуда такие мысли? а пин отключить от таймера не пробовали? его вроде можно на лету отключать/включать без остановки таймера.

Отредактировано RA (2019-03-03 23:03:50)

34

RA написал(а):

почему вам так казалось? я недоумеваю? откуда такие мысли?

были такие мысли

RA написал(а):

а пин отключить от таймера не пробовали? его вроде можно на лету отключать/включать без остановки таймера.

таймер в режиме One Pulse Mode , без пина он и так срабатывать не будет. А вот на лету выключить - что-то не уверен... хотя можно попробовать.

35

Не можно, а нужно пробовать. Отпишитесь пожалуйста о результатах.

36

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

P.S. можно наверно и тактирование вырубать в обработчике таймера, а не внешнем прерывании.... надо будет попробовать.

37

Все равно не совсем правильно работает. после включения тактирования таймер включается и делает лишний цикл.

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

в общем подключил генератор сигналов... изучаю ...

38

таймер стартует от Х сигнального пина. по нему вы пинаете таймер? таймер сформировал импульс, прерывание по переполнению таймера или как только сформированный импульс закончился? Х сигнальный пин настроен на вход? подключен через резюк? если на время обработчика пин сделать выходом, и подать нужное состояние - нуль(ну если сигналите 1-ей). будет нагрузка с того что сигналит, но резюк не даст кз. перед выходом из обработчика опять на вход.
или таймер сам на себя сигналит? тогда проще.

Отредактировано RA (2019-03-04 21:25:34)

39

сигналит компаратор.
завтра буду все варианты пробовать...

40

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


Вы здесь » Микроконтроллеры » Архив » STM32 TIMx Time base generator