Перейти к содержанию
    

Одна из callback функций не работает

Всем привет. Работаю с bluepill. 

void  HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
    if (htim -> Instance == TIM3){
         cringe +=1;
    }
}

void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
{
    if (htim -> Instance == TIM3){
         cringe +=2;
    }
}

Перед вами две встроенные функции. Для включения таймера ШИМ генерации я пишу следующее:  HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_1);

 

Дело в том, что первый коллбек работает исправно, а второй вообще не хочет исполняться. В чем может быть проблема? (Первая функция вызывает прерывания по окончанию ШИМ импульса, а вторая - прерывания по половине периода)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

самое простое - посмотреть дизассемблированную программу и найти там этот колбэк и место его вызова. Скорее всего, где-то опечатка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, novikovfb said:

самое простое - посмотреть дизассемблированную программу и найти там этот колбэк и место его вызова. Скорее всего, где-то опечатка.

Зачем деассемблировать то, на что есть исходники?

Посмотреть текст в файле stm32f1xx_hal_tim.c и поискать там где же этот коллбэк вызывается ещё проще.

 

PS. А вызывается от в функции TIM_DMADelayPulseHalfCplt() и этот HalfCplt относится не к половине импулься или периода PWM,  а к половине буфера DMA.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.09.2022 в 12:19, SSerge сказал:

Зачем деассемблировать то, на что есть исходники?

Посмотреть текст в файле stm32f1xx_hal_tim.c и поискать там где же этот коллбэк вызывается ещё проще.

 

PS. А вызывается от в функции TIM_DMADelayPulseHalfCplt() и этот HalfCplt относится не к половине импулься или периода PWM,  а к половине буфера DMA.

 

Теперь я понял) Спасибо большое!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...