ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
18 августа
1533163 Топик полностью
Бapбoc (29.07.2025 22:01, просмотров: 180) ответил Бapбoc на Простите малограмотного. Есть в STM32G431 управляющий регистр 32 бита. Есть в нём битовое поле 8 бит. Менять это поле, не портя содержимое регистра, можно только через чтение-модификацию-запись? Или есть за пазухой у АРМА какие-нибудь фишки. Приданная мне программист сделала в два хода -- обнуляет поле через И, потом загружает через ИЛИ. Я только нонеча вечером глянул код и понял, откель беда.
В продолжение темы. В том смысле, что всё то же поделие. 

Есть там такой TIM8, он генерит ШИМ, ШИМ-ом делаем плавный пуск (плавно заряжаем накопительный конденсатор). Т.е. начинаем с минимального коэффициента заполнения, заканчиваем после достижения нужного напряжения на конденсаторе. Управляем параметрами ШИМ по прерываниям TIM3, он выставляет флаг "пора уже" раз в 500 мкс, в мейне грузятся регистры TIM8. И как бы всё работает, но не всегда. Довольно часто TIM3 не желает заходить в прерывания, в результате цикл проходит при минимальном коэффициенте заполнения и, соответственно, при недозаряженном конденсаторе.

Прерывания есть ещё только одни -- от TIM1. Он перезапускает цикл и в том числе TIM3.

1. Анализ рукописи не помог.

2. Куды смотреть? К вечеру иссякли версии.

3. Может, это делается как-то по-другому?

Ну, не.