api_interrupt.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef _API_INTERRUPT_H
  2. #define _API_INTERRUPT_H
  3. #define GLOBAL_INT_DISABLE() uint32_t cpu_ie = PICCON&BIT(0); PICCONCLR = BIT(0)
  4. #define GLOBAL_INT_RESTORE() PICCON |= cpu_ie
  5. /**
  6. * @brief XBOX Interrupt Number Definition.
  7. */
  8. typedef enum {
  9. IRQn_SOFT = 2,
  10. IRQn_TMR0,
  11. IRQn_TMR1,
  12. IRQn_TMR2,
  13. IRQn_IR_QDEC_LEDC,
  14. IRQn_USB_CONTROL,
  15. IRQn_SD,
  16. IRQn_KEY_SCAN,
  17. IRQn_SDADC_DMA,
  18. IRQn_SDADC_SAMPLE = 13,
  19. IRQn_UART0_UDET,
  20. IRQn_HSUART,
  21. IRQn_TMR3,
  22. IRQn_DAC_DMAIN = 19,
  23. IRQn_SPIx,
  24. IRQn_URAT0_KEY_UDET_KEY,
  25. IRQn_FREQUENCY_DET_TOUCH_KEY = 23,
  26. IRQn_PORT = 26,
  27. IRQn_SARADC = 28,
  28. IRQn_RTC_SECOND_ALARM_LVD_WDT,
  29. IRQn_IIC,
  30. IRQn_TICK0,
  31. } IRQ_TYPEDEF;
  32. typedef void (*isr_t)(void);
  33. /**
  34. * @brief system interrupt init
  35. * @param interrupt number,define in IRQ_TYPEDEF
  36. * @param interrupt priority, 1 is high priority, 0 is low priority
  37. * @param interrupt callback function
  38. */
  39. bool sys_irq_init(int vector, int pr, isr_t isr);
  40. #endif