Кто любит RISC в жизни, заходим, не стесняемся.
Ср фев 15, 2023 08:06:08
Добрые люди помогите.
Проверьте мой код, главным образом настройку таймера в JPG, будет ли исполнение кода каждые 10 микросекунд
запутался с периодами что то.....
- Код:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM2) //100кГц
{
if (t>0) t--;
}
//в главном цикле вызывается бесконечно эта функция:
void func(...)
{
if (t > 0) return; //выжидаем заданное число десятков микросекунд
t=1;
//сюда переходим каждые 10 микросекунд, за исключением первого раза когда таймер не синхронизирован с моментом присвоения t
}
- Вложения
-
- таймер2.jpg
- (120.79 KiB) Скачиваний: 26
-
- тактирование.jpg
- (99.68 KiB) Скачиваний: 24
Ср фев 15, 2023 13:50:53
Предделитель можно выставить в 0, тогда частота не будет делиться.
А значение счётчика установить в (50000000 / 100000) - 1 = 499.
Но можете получить джиттер из-за обработчика прерывания и собственно кода.
Если код маленький - его можно было бы обрабатывать прямо в прерывании.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.