Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/37: Рейтинг темы: голосов - 37, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
1

STM32F103 обнулить таймер в режиме ШИМ

23.11.2016, 01:55. Показов 7018. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно в произвольный момент задать новый уровень ШИМ и чтобы он был применен тут же без ожидания окончания текущего цикла. Такой код не сработал
Код
TIM2->CR1 &= ~TIM_CR1_CEN;
TIM2->CCR2 = NewPWM;
TIM2->CNT = 0;
TIM2->CR1 |= TIM_CR1_CEN;
В CCR2 записывается число из переменной, CNT обнуляется, но реально ШИМ изменяется по окончанию текущего цикла. Что делаю не так?
Помню в AVR у таймеров была двойная буферизация регистра сравнения. Возможно в STM32 так же, но как это обойти?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2016, 01:55
Ответы с готовыми решениями:

Непонятно как работает таймер в ШИМ режиме
Здравствуйте! Может кто-нибудь поможет разобраться. Мне нужно менять частоту ШИМ по ходу работы....

TIM1 и ШИМ на STM32F103
Доброго времени суток. Пытаюсь запустить ШИМ используя TYM1 с комплементарными выходами....

stm32f103 не тактируется 6й таймер
Не получается подать тактирование некотором устройствам на шине APB1 таймер 6,7 и еще кое каким....

STM32F103 не работает одновременно таймер и энкодер
На STM32F103 на 2 и 3 таймере висят энкодеры. Пример инициализации ниже: TIM_TimeBaseInitTypeDef...

3
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
23.11.2016, 02:06 2
Всем спасибо сам догадался. Вместо обнуления CNT в него нужно записать число из ARR и новый цикл ШИМ тут же начнется.
Код
TIM2->CNT = TIM2->ARR - 1;
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 50
24.11.2016, 20:18 3
1 не надо включать и отключать таймер
2 не надо изменять CNT (есть специальный бит, если так хочется типа ue )
3 прочитать RM
3 настроить правильно таймер , отключить буферизацию CCR
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
24.11.2016, 22:57 4
Спасибо.
Можно немного подробнее? Намекните какие биты какого регистра смотреть чтобы отключить буферизацию регистра сравнения?
0
24.11.2016, 22:57
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2016, 22:57
Помогаю со студенческими работами здесь

I2C в режиме мастера на STM32F103. Вопрос.
Кто пользовал I2C в режиме мастера на STM32F103? Подскажите пожалуйста. Я не совсем понял, адрес...

шим и таймер.
Во общем хочу сделать шим и выключить его по заданном интервалу времени. К примеру включили...

АЦП и таймер STM32F103 - ARM, Cortex, STM32 микроконтроллер
Здравствуйте, уважаемые форумчане. Ковыряюсь я с ацп и хочу запускать его по таймеру с частотой 1...

STM32F103 - ошибка в описании в режиме SPI SimplexUnidirect?
При попытке подключения АЦП к МК (STM32F103T8U6) по SPI выявилось несовпадение с документацией. ...

Программный ШИМ, таймер
Здравствуйте! Объясните, пожалуйста, что я сделал не так. Собственно задача: имеется плата с...

Как обнулить таймер?
Доброго времени суток.) Подскажите пожалуйста как можно обнулить таймер, чтобы он начал отсчёт с...

Как обнулить таймер
Здравствуйте. Никак не могу понять как обнулить таймер. Private Sub Timer1_Tick(sender As Object,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как узнать какой процесс блокирует файл или каталог в Windows
bt_guru 23.01.2025
При работе с операционной системой Windows пользователи нередко сталкиваются с ситуацией, когда система отказывается выполнять определенные действия с файлами или каталогами, сообщая, что они. . .
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
Как проверить состояние чекбокса в jQuery. Как работать с чекбоксами
bytestream 23.01.2025
При разработке интерактивных веб-форм часто возникает необходимость программно определять состояние чекбоксов с помощью jQuery. Чекбоксы являются важными элементами пользовательского интерфейса,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru