interrupts_hc32l19x.h 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /*******************************************************************************
  2. * Copyright (C) 2018, Huada Semiconductor Co.,Ltd All rights reserved.
  3. *
  4. * This software is owned and published by:
  5. * Huada Semiconductor Co.,Ltd ("HDSC").
  6. *
  7. * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
  8. * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
  9. *
  10. * This software contains source code for use with HDSC
  11. * components. This software is licensed by HDSC to be adapted only
  12. * for use in systems utilizing HDSC components. HDSC shall not be
  13. * responsible for misuse or illegal use of this software for devices not
  14. * supported herein. HDSC is providing this software "AS IS" and will
  15. * not be responsible for issues arising from incorrect user implementation
  16. * of the software.
  17. *
  18. * Disclaimer:
  19. * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
  20. * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
  21. * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
  22. * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
  23. * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
  24. * WARRANTY OF NONINFRINGEMENT.
  25. * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
  26. * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
  27. * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
  28. * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
  29. * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
  30. * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
  31. * SAVINGS OR PROFITS,
  32. * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  33. * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
  34. * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
  35. * FROM, THE SOFTWARE.
  36. *
  37. * This software may be replicated in part or whole for the licensed use,
  38. * with the restriction that this Disclaimer and Copyright notice must be
  39. * included with each copy of this software, whether used in part or whole,
  40. * at all times.
  41. */
  42. /******************************************************************************/
  43. /** \file interrupts_hc32l17x.h
  44. **
  45. ** Interrupt common define.
  46. ** @link IRQGroup Some description @endlink
  47. **
  48. ** - 2019-03-01 1.0 Lux First version.
  49. **
  50. ******************************************************************************/
  51. #ifndef __INTERRUPTS_HC32L17x_H__
  52. #define __INTERRUPTS_HC32L17x_H__
  53. /******************************************************************************/
  54. /* Include files */
  55. /******************************************************************************/
  56. #include "hc32l196_ddl.h"
  57. /* C binding of definitions if building with C++ compiler */
  58. #ifdef __cplusplus
  59. extern "C"
  60. {
  61. #endif
  62. /******************************************************************************/
  63. /* Global pre-processor symbols/macros ('#define') */
  64. /******************************************************************************/
  65. #define DDL_IRQ_LEVEL_DEFAULT 3u
  66. //<<此选项会打开interrupt_hc32xxx.c中的中断回调函数,用户如果需要实现中断服务函数,
  67. //<<可在源码文件中定义该文件中用"__WEAK"声明的同名中断服务函数即可。
  68. #define INT_CALLBACK_ON 1u //<<(默认值)
  69. //<<此选项会关闭interrupt_hc32xxx.c中的中断回调函数,此时用户可在该文件中自行定义中断服务函数的实现。
  70. #define INT_CALLBACK_OFF 0u
  71. /******************************************************************************
  72. * Global type definitions
  73. ******************************************************************************/
  74. #define INT_CALLBACK_PORTA INT_CALLBACK_ON
  75. #define INT_CALLBACK_PORTB INT_CALLBACK_ON
  76. #define INT_CALLBACK_PORTC INT_CALLBACK_ON
  77. #define INT_CALLBACK_PORTD INT_CALLBACK_ON
  78. #define INT_CALLBACK_PORTE INT_CALLBACK_ON
  79. #define INT_CALLBACK_PORTF INT_CALLBACK_ON
  80. #define INT_CALLBACK_DMAC INT_CALLBACK_ON
  81. #define INT_CALLBACK_TIM3 INT_CALLBACK_ON
  82. #define INT_CALLBACK_UART0 INT_CALLBACK_ON
  83. #define INT_CALLBACK_UART1 INT_CALLBACK_ON
  84. #define INT_CALLBACK_UART2 INT_CALLBACK_ON
  85. #define INT_CALLBACK_UART3 INT_CALLBACK_ON
  86. #define INT_CALLBACK_LPUART0 INT_CALLBACK_ON
  87. #define INT_CALLBACK_LPUART1 INT_CALLBACK_ON
  88. #define INT_CALLBACK_SPI0 INT_CALLBACK_ON
  89. #define INT_CALLBACK_SPI1 INT_CALLBACK_ON
  90. #define INT_CALLBACK_I2C0 INT_CALLBACK_ON
  91. #define INT_CALLBACK_I2C1 INT_CALLBACK_ON
  92. #define INT_CALLBACK_TIM0 INT_CALLBACK_ON
  93. #define INT_CALLBACK_TIM1 INT_CALLBACK_ON
  94. #define INT_CALLBACK_TIM2 INT_CALLBACK_ON
  95. #define INT_CALLBACK_LPTIM0 INT_CALLBACK_ON
  96. #define INT_CALLBACK_LPTIM1 INT_CALLBACK_ON
  97. #define INT_CALLBACK_TIM4 INT_CALLBACK_ON
  98. #define INT_CALLBACK_TIM5 INT_CALLBACK_ON
  99. #define INT_CALLBACK_TIM6 INT_CALLBACK_ON
  100. #define INT_CALLBACK_PCA INT_CALLBACK_ON
  101. #define INT_CALLBACK_WDT INT_CALLBACK_ON
  102. #define INT_CALLBACK_RTC INT_CALLBACK_ON
  103. #define INT_CALLBACK_ADC INT_CALLBACK_ON
  104. #define INT_CALLBACK_DAC INT_CALLBACK_ON
  105. #define INT_CALLBACK_PCNT INT_CALLBACK_ON
  106. #define INT_CALLBACK_VC0 INT_CALLBACK_ON
  107. #define INT_CALLBACK_VC1 INT_CALLBACK_ON
  108. #define INT_CALLBACK_VC2 INT_CALLBACK_ON
  109. #define INT_CALLBACK_LVD INT_CALLBACK_ON
  110. #define INT_CALLBACK_LCD INT_CALLBACK_ON
  111. #define INT_CALLBACK_FLASH INT_CALLBACK_ON
  112. #define INT_CALLBACK_RAM INT_CALLBACK_ON
  113. #define INT_CALLBACK_CLKTRIM INT_CALLBACK_ON
  114. /**
  115. *******************************************************************************
  116. ** \brief 中断优先级数据类型定义
  117. ** \note
  118. ******************************************************************************/
  119. typedef enum en_irq_level
  120. {
  121. IrqLevel0 = 0u, ///< 优先级0
  122. IrqLevel1 = 1u, ///< 优先级1
  123. IrqLevel2 = 2u, ///< 优先级2
  124. IrqLevel3 = 3u, ///< 优先级3
  125. } en_irq_level_t;
  126. /******************************************************************************
  127. * Global function prototypes (definition in C source)
  128. ******************************************************************************/
  129. ///< 系统中断使能开关
  130. extern void EnableNvic(IRQn_Type enIrq, en_irq_level_t enLevel, boolean_t bEn);
  131. #ifdef __cplusplus
  132. }
  133. #endif
  134. #endif /* __INTERRUPTS_HC32L19x_H__ */
  135. /******************************************************************************
  136. * EOF (not truncated)
  137. ******************************************************************************/