Тёмный

STM32. CMSIS #4. TIMx - делаем точную задержку через таймер TIM3 

NR.electronics
Подписаться 18 тыс.
Просмотров 8 тыс.
50% 1

Скачать PVS-Studio для проверки своего можно бесплатно на:
pvs-studio.com/nr_download
Топ 5 мифов о статическом анализе:
• Топ 5 мифов о статичес...
Официальная страничка ВКонтакте:
pvsstudio_rus
Знакомимся с таймерами и пробуем использовать TIM3 вместо SysTick по документации и начинаем его программировать для получения необходимого точного значения задержки между двумя любыми процессами для замещения использования системного таймера - SysTick (Функции HAL_Delay()). Проверяем запрограммированное значение по осциллографу и обязательно статическим анализатором кода. Готовый проект можно скачать по ссылке:
github.com/nr-electronics/CMS...
__________________________________________________
Вы можете помочь каналу через Яндекс-деньги:
money.yandex.ru/to/4100115727...
или через банковскую карту:
4377 7237 6190 5714
__________________________________________________

Опубликовано:

 

22 апр 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 32   
@dobroliub1908
@dobroliub1908 3 года назад
Класс! Все подробно и интересно!! Ждём-с продолжения! Спасибо Вам.
@NRelectronics
@NRelectronics 3 года назад
Спасибо. Продолжения будет много, может не так часто правда.
@user-bb6ym1bo3h
@user-bb6ym1bo3h Год назад
Большое вам спасибо за подробные уроки! Помогли разобраться.
@NRelectronics
@NRelectronics Год назад
Пожалуйста! Я рад этому.
@user-bh4zf6jn7f
@user-bh4zf6jn7f 3 года назад
Большое спасибо за видео.
@NRelectronics
@NRelectronics 3 года назад
На здоровье.
@AlexRootx
@AlexRootx 3 года назад
Тема CMSIS очень интересна!!!! Есть ли возможность рассмотреть фичи таймера TIM1 ?
@NRelectronics
@NRelectronics 3 года назад
Там столько фич в TIM1, что придется делать отдельную ветку. Думаю TIM1 подробнее рассмотрим уже на HAL. До конца пока не определено.
@AlexRootx
@AlexRootx 3 года назад
@@NRelectronics ХОЛ не то.... , интерес именно к регистрам и ЦМСИС)
@NRelectronics
@NRelectronics 3 года назад
Да я то понимаю интерес))
@user-kc8ec6vl9d
@user-kc8ec6vl9d 11 месяцев назад
Обьясните плиз. Если "TIM3->DIER |= TIM_DIER_UIE;" регистр описан в документации, то откуда и и что это "NVIC_EnableIRQ (TIM3_IRQn);" ???
@NRelectronics
@NRelectronics 11 месяцев назад
TIM3->DIER |= TIM_DIER_UIE - После того как таймер достигнет своего максимального значения необходимо что бы он уведомил об этом контроллер прерываний, для этого разрешим генерацию событий. В библиотеке CMSIS. NVIC_EnableIRQ (TIM3_IRQn) - включить прерывания по таймеру 3.
@vovanikotin
@vovanikotin 3 года назад
Спасибо за урок. CMSIS иногда очень актуален. Планируете по I2C сделать урок с каким нибудь датчиком?
@NRelectronics
@NRelectronics 3 года назад
CMSIS будет актуален всегда. Да, с I2C и датчиком планирую видео.
@vovanikotin
@vovanikotin 3 года назад
@@NRelectronics отлично, ждем! я своими силами I2C не смог запустить на F737--м, повторный старт никак не проходит.
@NRelectronics
@NRelectronics 3 года назад
На F7 надо отдельно смотреть, так не скажу. Но эти семейства сильно разные, как по новизне так и по фичам.
@user-gr6oh2ve7x
@user-gr6oh2ve7x 3 года назад
Расскажите об использовании watchdog таймеров
@NRelectronics
@NRelectronics 3 года назад
Ок, как-нибудь.
@intelektum
@intelektum 3 года назад
Ваши дефайны, очень похожи, как сделано в LL для куба.
@NRelectronics
@NRelectronics 3 года назад
Ну они чистые с CMSIS. В библиотечке я показывал, а какие свои написал так как думал и написал...
@vladimirzibtsev2889
@vladimirzibtsev2889 Год назад
почему для tim3_cnt не использовать enum? существует ли информация (видео, книги) как архитектурно грамотно разрабатывать приложения под МК? ваш подход выглядит как очень сложно поддерживаемый в будущем. что касается работы с МК, очень подробное и понятное объяснение, спасибо!
@NRelectronics
@NRelectronics Год назад
В чем сложность, По-моему всё наглядно и понятно. Можно в крайнем случае в отдельный сияние вынести. Такую цель в видео обычно не ставлю, так как важны инициализации и алгоритмы. Спасибо за оценку, стараюсь, меня где поправляют я тоже учусь, богов нет.
@sergeyvp
@sergeyvp 3 года назад
Переменная tim3_cnt в данном случае не нужна. Достаточно проверить состояние вывода в регистре и изменить на противоположное.
@NRelectronics
@NRelectronics 3 года назад
Реализовать можно по разному.
@sergeyvp
@sergeyvp 3 года назад
@@NRelectronics Можно, но не нужно. Зачем вам лишние переменные и лишняя работа контроллера? Ресурсы контроллера нужно беречь. Почитайте "История одного байта".
@NRelectronics
@NRelectronics 3 года назад
Слышал я давно про эту историю)) Но тут получается прошивка менее одного килобайта. Ресурсов хватает с запасом.
@alexeyismyname
@alexeyismyname 2 года назад
В регистр ARR необходимо записывать значение на единицу меньше, в вашем случае 9999
@NRelectronics
@NRelectronics 2 года назад
есть разные примеры в сети по его применению, в моем случае: ..."TIM3->ARR , который соответствует значению Period"... и оно посчитанное в "WRITE_REG(TIM3->PSC, 7199);"
@strumeg3061
@strumeg3061 3 года назад
Зачем в TIM3_IRQHandler нужна проверка SR? Разве функция уже не вызывается по событию?
@NRelectronics
@NRelectronics 3 года назад
Мы попадаем по прерыванию в TIM3_IRQHandler, и если поднят флаг, мало ли, всегда его сбрасываем, чтобы не попасть опять в прерывание после выхода из него.
@strumeg3061
@strumeg3061 3 года назад
@@NRelectronics Спасибо)
@alexeyismyname
@alexeyismyname 2 года назад
проверка конечно же не нужна! необходимо сразу сбросить флаг и всё. вы всё верно предположили, функция обработчик прерывания как раз и вызывается по этому событию
Далее
STM32: PWM шаг за шагом на STM32CubeIDE
10:51
STM32. Контроллер прерываний
22:01