// // Interrupts: handlers for any needed global interrupts // #include "stm32f3xx_hal.h" #include "stm32f3xx.h" #include "interrupts.h" #include "gpio.h" #include "pwmout.h" // Systick interrupt void SysTick_Handler(void) { HAL_IncTick(); HAL_SYSTICK_IRQHandler(); } void EXTI9_5_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(SW_B_Pin); HAL_GPIO_EXTI_IRQHandler(SW_A_Pin); HAL_GPIO_EXTI_IRQHandler(SW_C_Pin); } void EXTI15_10_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(SW_BTN_Pin); } uint32_t last_button_press = 0; void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { switch(GPIO_Pin) { case SW_BTN_Pin: { // if(HAL_GetTick() > last_button_press + 100) // { // HAL_GPIO_TogglePin(LED_RED); // HAL_GPIO_TogglePin(GATE_DRIVE); // last_button_press = HAL_GetTick(); // } } break; } } void TIM1_TRG_COM_TIM17_IRQHandler(void) { /* USER CODE BEGIN TIM1_TRG_COM_TIM17_IRQn 0 */ /* USER CODE END TIM1_TRG_COM_TIM17_IRQn 0 */ HAL_TIM_IRQHandler(pwmout_get_tim()); /* USER CODE BEGIN TIM1_TRG_COM_TIM17_IRQn 1 */ /* USER CODE END TIM1_TRG_COM_TIM17_IRQn 1 */ } void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { if(htim == pwmout_get_tim()) { HAL_GPIO_WritePin(SSR, 0); HAL_GPIO_WritePin(LED, 0); } } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim == pwmout_get_tim()) { if(htim->Instance->CCR1 == 0) { HAL_GPIO_WritePin(LED, 0); HAL_GPIO_WritePin(SSR, 0); } else { HAL_GPIO_WritePin(LED, 1); HAL_GPIO_WritePin(SSR, 1); } } }