api-interrupts.c 1001 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "api-hal/api-interrupt-mgr.h"
  2. #include <main.h>
  3. extern void api_interrupt_call(InterruptType type, void* hw);
  4. /* interrupts */
  5. /* Comparator trigger event */
  6. void HAL_COMP_TriggerCallback(COMP_HandleTypeDef* hcomp) {
  7. api_interrupt_call(InterruptTypeComparatorTrigger, hcomp);
  8. }
  9. /* Timer input capture event */
  10. void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef* htim) {
  11. api_interrupt_call(InterruptTypeTimerCapture, htim);
  12. }
  13. /* Output compare event */
  14. void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef* htim) {
  15. api_interrupt_call(InterruptTypeTimerOutputCompare, htim);
  16. }
  17. /* Timer update event */
  18. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef* htim) {
  19. api_interrupt_call(InterruptTypeTimerUpdate, htim);
  20. // handle HAL ticks
  21. if(htim->Instance == TIM17) {
  22. HAL_IncTick();
  23. }
  24. }
  25. /* External interrupt event */
  26. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
  27. api_interrupt_call(InterruptTypeExternalInterrupt, (void*)(uint32_t)GPIO_Pin);
  28. }