24.03.2018, 00:36
|
|
Прописка
Регистрация: 15.06.2006
Адрес: РФ г.Тюмень
Сообщений: 205
Сказал спасибо: 3
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
STM32 Настройка таймера
Здравствуйте!
Есть такая задача, при возникновении определенного события нужно отсчитать 20 секунд и сгенерировать прерывание, в нем выполнить определенные действия и снова ждать события для запуска отсчета 20 секунд, работаю в кубе с STM32f103c8t6 включил и настроил таймер TIM2 вроде все работает, не могу найти функцию HAL для принудительного сброса счетчика? При выключении таймера HAL_TIM_Stop() счетчик тоже не сбрасывается, что настроить, для обнуления при выключении таймера?
__________________
Николай
|
|
|
|
24.03.2018, 02:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: STM32 Настройка таймера
В кубе вряд ты чего найдешь. Сам пытался разобраться в хитросплетениях куба,но понял что это трата времени.
А так у таймера есть режим trigger mode,потом отсчитывай 20 секунд и прерывание или запуск DMA,как вашей душе удобно.
__________________
Глаза боятся,а руки делают.
Последний раз редактировалось CERGEI1982; 24.03.2018 в 02:32.
|
|
|
|
24.03.2018, 03:05
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,312
Сказал спасибо: 173
Сказали Спасибо 3,112 раз(а) в 2,006 сообщении(ях)
|
Re: STM32 Настройка таймера
Пипец нах. А всего то надо написать tim2-›cnt = 0;
__________________
ОГМ/ПОГМ
|
|
|
Эти 2 пользователя(ей) сказали Спасибо индюк за это сообщение:
|
|
|
24.03.2018, 03:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: STM32 Настройка таймера
Сообщение от индюк
|
А всего то надо написать tim2-›cnt = 0;
|
Без HAL-а?!
Сжечь колдуна!
Последний раз редактировалось AR_Favorit; 26.03.2018 в 01:37.
|
|
|
Эти 4 пользователя(ей) сказали Спасибо AR_Favorit за это сообщение:
|
|
|
24.03.2018, 03:55
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,312
Сказал спасибо: 173
Сказали Спасибо 3,112 раз(а) в 2,006 сообщении(ях)
|
Re: STM32 Настройка таймера
AR_Favorit, без хала, да))) все что я знаю о хале - это его название))) я величайший колдун, заклинатель битов в процессорах!!! Я пробовал на вкус кал, выделяемый процессором 80с48.
Я помню машинные коды 80с31.
Выставляю биты руками, дорого
__________________
ОГМ/ПОГМ
Последний раз редактировалось индюк; 24.03.2018 в 03:58.
|
|
|
|
24.03.2018, 10:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,667
Сказал спасибо: 130
Сказали Спасибо 1,071 раз(а) в 516 сообщении(ях)
|
Re: STM32 Настройка таймера
Кстати у Mikroe есть хорошая бесплатная утилита Timer Calculator.
https://www.mikroe.com/timer-calculator
Вбиваешь нужные данные ( чип, тактовая, таймер, период) На выходе - готовые значения делителей. Удобно. Плюс - готовый кусок кода для инициализации и работы таймера.
|
|
|
|
24.03.2018, 12:12
|
|
Прописка
Регистрация: 15.06.2006
Адрес: РФ г.Тюмень
Сообщений: 205
Сказал спасибо: 3
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
Re: STM32 Настройка таймера
Калькулятор этот у меня тоже есть, кодом из него не пользуюсь, а вот для подсчета значений помогает хорошо. Про то как сбросить без HAL понятно из даташита, но при использовании (куба, библиотеки HAL) возникает сомнение (если я сброшу или установлю регистры напрямую, то как отреагируют функции библиотеки HAL) ведь там множество всяких проверок, и келбеков.
__________________
Николай
|
|
|
|
24.03.2018, 14:36
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: STM32 Настройка таймера
Сообщение от индюк
|
Пипец нах. А всего то надо написать tim2-›cnt = 0;
|
Угу. Это что курколапой нашкрябать "еравноэмцэквадрат" и гордо самоподжариться на вертеле. Просто нужно правильно настроить таймер и включить режим ОРМ.
Все! И никакого сброса нафиг не надо.
|
|
|
|
24.03.2018, 15:03
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,312
Сказал спасибо: 173
Сказали Спасибо 3,112 раз(а) в 2,006 сообщении(ях)
|
Re: STM32 Настройка таймера
Сообщение от rihkov
|
если я сброшу или установлю регистры напрямую, то как отреагируют функции библиотеки HAL
|
а ты его не используй вообще!
то что хал это кал даже сама стм гдето писала вроде.
процессор это не вындовс - тут не надо кучу функций использовать, они только тормозят весь процесс.
это в инде подтыкаешь классы, классы через 500 шагов тыкаются в апи апи тыкается еще через 500 шагов в какие то функции и уже они записывают чтото нужное в регистры железа.
я считаю в проце это лишне. нахрен эта вся путаница нужна когда все регистры без проблем доступны напрямую и максимально быстро и понятно.
в частности сброс это запись нулей в биты.
занимает одну простую операцию. - REG = 0. чо еще надо я хз.
__________________
ОГМ/ПОГМ
|
|
|
|
24.03.2018, 16:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,576
Сказал спасибо: 115
Сказали Спасибо 805 раз(а) в 582 сообщении(ях)
|
Re: STM32 Настройка таймера
Нафиг вообще отдельный таймер под такой жирный интервал времени расходовать?
Все равно ведь наверняка в системе есть общесистемный таймер (я для этого обычно SysTick использую), который отсчитывает некие доли секунд (у меня это — миллисекунды).
Просто заводим некую переменную — время, когда нужно нечто выполнить и в основном цикле проверяем: если она ненулевая, а значение ее меньше или равно текущему времени, то обнулить ее и запустить нужную процедуру.
Или пользователи калокуба так не делают?
__________________
Смерть бандеровской мразоте!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:01.
|
|