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

 
 
> STM32F429: перейти с TIM3 на TIM2, Не происходят прерывания по update
Genadi Zawidowsk...
сообщение Sep 18 2014, 18:00
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Есть проект, в котором TIM3 используется для генерации периодических прерываний по update. Соответствующий handler вызывается.
Попытка просто переехать на TIM2 (для получения более точных - соответствующих желаемым - интервалов за счёт использования его 32-х разрядности) - прерывания (TIM2_IRQHandler) не происходят.
Программирование (используемая разрядность) не менялась.
Работа без SPL, всё "ручками". Про включение соответствующей периферии не забыл.
Что в этих таймерах такого особенного?

Файл: http://188.134.5.254/browser/hfreceiver/trunk/hardware.c

Сообщение отредактировал Genadi Zawidowski - Sep 18 2014, 18:08
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Sep 18 2014, 22:21
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Разобрался.
В программе было разнесено два действия - инициализация таймера и загрузка предельного значения ARR (которое меняется в процессе работы). Дабы избежать чересчур быстрых прерываний от таймера (документация говорит об значении 0 в ARR после включения), прерывания разрешались после загрузки рассчитанного значения периода. Но это сейчас не имеет значения.
Как оказалось, после RESET значение в ARR 0x0000FFFF для 16-битного таймера и 0xFFFFFFFF для 32-х битного (TIM2). После разрешения таймера (в инициализации) таймер начинает считать. Загруженное новое значение в ARR будет использовано только тогда, когда таймер досчитает до 0xFFFFFFFF. Я не дождался ни разу...
Раскопано отладочной печатью в компорт на живом железе.

Сообщение отредактировал Genadi Zawidowski - Sep 18 2014, 22:24
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Sep 19 2014, 04:26
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Genadi Zawidowski @ Sep 19 2014, 04:21) *
Загруженное новое значение в ARR будет использовано только тогда, когда таймер досчитает до 0xFFFFFFFF. Я не дождался ни разу...

Или, если лень ждать, то можно сделать вот так sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


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


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