реклама на сайте
подробности

 
 
> STM32F407VG ШИМ на порту РА1
DerKetzer
сообщение Jun 4 2014, 01:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 10-04-13
Пользователь №: 76 430



Отладочная плата STM32F4Descovery. Настраиваю шим от таймера 2 на порту РА1. ШИМ начинает работать только через минуту.. Вся остальная периферия и ШИМ на Других портах работают нормально и сразу. В чем может быть проблема? Попробовал на другой отладочной плате. Абсолютно то же самое. На этот пин включаю канал пятого таймера. То же самое..Включается гдето через минуту.

Сообщение отредактировал DerKetzer - Jun 4 2014, 02:15
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Golikov A.
сообщение Jun 4 2014, 02:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



настройки таймера по переполнению применяются после срабатывания события таймера - переполнение. То есть настроив его на новый режим работы, пока он старую программу не дотикает новая не начнется... Видать клок у вас на нем маленький вот он и тикает минуту... Там есть какой то прием как его заставить тикнуть сразу после новых настроек
Go to the top of the page
 
+Quote Post
DerKetzer
сообщение Jun 4 2014, 02:42
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 10-04-13
Пользователь №: 76 430



Шим настраиваю аппаратный. Тоесть от софта не зависит. а частота нормальная. Тоесть настраиваю регистры. Контроллер запускается и только через минуту начинает выдавать мне шим с нужной мне частотой 32768 гц

Сообщение отредактировал DerKetzer - Jun 4 2014, 02:43
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 4 2014, 03:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Так... Сразу не получилось попробуем еще раз

я взял описание вашего проца, читаю там

The auto-reload register is preloaded. Writing to or reading from the auto-reload register
accesses the preload register. The content of the preload register are transferred into the
shadow register permanently or at each update event (UEV), depending on the auto-reload
preload enable bit (ARPE) in TIMx_CR1 register. The update event is sent when the counter
reaches the overflow and if the UDIS bit equals 0 in the TIMx_CR1 register. It can also be
generated by software. The generation of the update event is described in details for each
configuration.

Поясняю. Когда вы настраиваете свой аппаратный шим, вы пишете не в его регистры, а в их теневую копию. И только когда таймер который генерит шим доработает свою настройку до момента обновления, только тогда применяться ваши новые настройки. После ресета процессора таймер на что-то настроен и пока он не дотикает до переполнения ваши настройки не применяться. Видимо время тика таймера с теми делителями что вы ставите как раз минута, после чего в него загружается новое значение ограничения и он начинает сбрасываться с заданной частотой....
Go to the top of the page
 
+Quote Post
DerKetzer
сообщение Jun 4 2014, 04:34
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 10-04-13
Пользователь №: 76 430



Наверное так и есть. Считает до переполнения 32 разрядного счетчика. Потом уже применяет выставленные в регистрах значения. Спасибо
Так и есть. Есть бит в регистре который называется update.Говорит таймеру что надо обновиться. Его выставил и все работает сразу.

Сообщение отредактировал IgorKossak - Jun 4 2014, 13:58
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016