Как выбрать нарастающий или падающий фронт прерывания ШИМ и выполнить действие в Обработчике - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь добиться переключения пин-кода gpio в TIM_Handler () при прерывании ШИМ. В настоящее время gpio переключается после некоторой задержки падения фронта pwm. Но Я ожидаю переключать gpio на каждом фронте ШИМ. пожалуйста, помогите мне достичь этого.

Моя конфигурация TIM для STM32F030R8 - MCU выглядит следующим образом

TIM16 включен в CubeMx

Выбранные генерации ШИМ CH1 и CH1N

Ширина импульса 50%

Выбранное глобальное прерывание TIM16

Код, генерируемый CubeMX

In main. c

добавлено HAL_TIM_PWM_Start_IT (& htim16, TIM_CHANNEL_1);

добавлено HAL_TIMEx_PWMN_Start_IT (& htim16, TIM_CHANNEL_1);

* 10 * 290

1029 * под обработчиком таймера, что я написал, это

**void TIM16_IRQHandler(void)
{
GPIOA->BSRR = (uint32_t)GPIO_PIN_10;
HAL_TIM_IRQHandler(&htim16);
GPIOA->BRR = (uint32_t)GPIO_PIN_10;
}**

enter image description here Желтый - это ШИМ, а зеленый - это gpio toggle. Вы можете увидеть переключатели gpio после нарастания фронта ШИМ и некоторой задержки.

...