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

 
 
> stm32 захват таймера 16 бит
SasaVitebsk
сообщение Apr 3 2014, 11:09
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Доброго времени суток. Есть вопрос.
Немного не учёл особенности однокристалки stm32f407.
Короче мне надо использовать захват таймера. Но плата разведена на таймер 8. Он 16-ти битный. Мне для расчётов нужен 32-ух битный.
Я сделал расширение таймера за счёт 4-го таймера. При захвате вызываю прерывание где читаю регистр захвата TIM8 и регистр CNT таймера расширения TIM4.
Вижу потенциальные грабли в том, что пока вызывается прерывание, можно нарваться на "ненужное" переполнение. То есть фактически тот же неатомарный доступ только для таймеров.
Кто-нибудь разруливал данную ситуацию? Я могу как-то захватить оба таймера?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Apr 4 2014, 14:47
Сообщение #2


Гуру
******

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



Цитата
Для PIC когда-то было предложено. Читать старший, читать младший, читать старший. Если оба прочтения старшего одинаковые, значит, переполнения не было.

а если старшие не равны, то надо читать новый младший и все теже 4 считывания получаются%), это все та же старая стандартная идея, с разными типами проверки


Цитата
Это всё понятно. У меня частота 14 и соответственно 213.6. Вопрос о напряжности сложный, если это прибор коммерческого учёта. )) Придётся всёже переразвести на 32-ух битный таймер.

мне тут в личку написали, смысл идеи с ДМА, перепишу суда своими словами.

вы запускаете таймер 32 разрядный, настраиваете ДМА на чтение этого таймера по 1 тику вашего 8 разрядного таймера что идет наружу. И настраиваете запуск этого 8 разрядного таймера по внешнему сигналу.


В результате с появлением внешнего сигнала, таймер делает тик, и запускает чтение 32 разрядного таймера по ДМА. Фактически это тоже что запустить 32 битный таймер и по сигналу его запомнить +- пару тактов...


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

Go to the top of the page
 
+Quote Post



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

 


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


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