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 /******************************************************************************/
55 /* Include files                                                              */
56 /******************************************************************************/
57 #include "hc32l196_ddl.h"
58 
59 /* C binding of definitions if building with C++ compiler */
60 #ifdef __cplusplus
61 extern "C"
62 {
63 #endif
64 
65 /******************************************************************************/
66 /* Global pre-processor symbols/macros ('#define')                            */
67 /******************************************************************************/
68 #define DDL_IRQ_LEVEL_DEFAULT                   3u
69 
70 //<<此选项会打开interrupt_hc32xxx.c中的中断回调函数,用户如果需要实现中断服务函数,
71 //<<可在源码文件中定义该文件中用"__WEAK"声明的同名中断服务函数即可。
72 #define INT_CALLBACK_ON                                  1u  //<<(默认值)
73 //<<此选项会关闭interrupt_hc32xxx.c中的中断回调函数,此时用户可在该文件中自行定义中断服务函数的实现。
74 #define INT_CALLBACK_OFF                                 0u
75 /******************************************************************************
76  * Global type definitions
77  ******************************************************************************/
78 #define INT_CALLBACK_PORTA                       INT_CALLBACK_ON
79 #define INT_CALLBACK_PORTB                       INT_CALLBACK_ON
80 #define INT_CALLBACK_PORTC                       INT_CALLBACK_ON
81 #define INT_CALLBACK_PORTD                       INT_CALLBACK_ON
82 #define INT_CALLBACK_PORTE                       INT_CALLBACK_ON
83 #define INT_CALLBACK_PORTF                       INT_CALLBACK_ON
84 #define INT_CALLBACK_DMAC                        INT_CALLBACK_ON
85 #define INT_CALLBACK_TIM3                        INT_CALLBACK_ON
86 #define INT_CALLBACK_UART0                       INT_CALLBACK_ON
87 #define INT_CALLBACK_UART1                       INT_CALLBACK_ON
88 #define INT_CALLBACK_UART2                       INT_CALLBACK_ON
89 #define INT_CALLBACK_UART3                       INT_CALLBACK_ON
90 #define INT_CALLBACK_LPUART0                     INT_CALLBACK_ON
91 #define INT_CALLBACK_LPUART1                     INT_CALLBACK_ON
92 #define INT_CALLBACK_SPI0                        INT_CALLBACK_ON
93 #define INT_CALLBACK_SPI1                        INT_CALLBACK_ON
94 #define INT_CALLBACK_I2C0                        INT_CALLBACK_ON
95 #define INT_CALLBACK_I2C1                        INT_CALLBACK_ON
96 #define INT_CALLBACK_TIM0                        INT_CALLBACK_ON
97 #define INT_CALLBACK_TIM1                        INT_CALLBACK_ON
98 #define INT_CALLBACK_TIM2                        INT_CALLBACK_ON
99 #define INT_CALLBACK_LPTIM0                      INT_CALLBACK_ON
100 #define INT_CALLBACK_LPTIM1                      INT_CALLBACK_ON
101 #define INT_CALLBACK_TIM4                        INT_CALLBACK_ON
102 #define INT_CALLBACK_TIM5                        INT_CALLBACK_ON
103 #define INT_CALLBACK_TIM6                        INT_CALLBACK_ON
104 #define INT_CALLBACK_PCA                         INT_CALLBACK_ON
105 #define INT_CALLBACK_WDT                         INT_CALLBACK_ON
106 #define INT_CALLBACK_RTC                         INT_CALLBACK_ON
107 #define INT_CALLBACK_ADC                         INT_CALLBACK_ON
108 #define INT_CALLBACK_DAC                         INT_CALLBACK_ON
109 #define INT_CALLBACK_PCNT                        INT_CALLBACK_ON
110 #define INT_CALLBACK_VC0                         INT_CALLBACK_ON
111 #define INT_CALLBACK_VC1                         INT_CALLBACK_ON
112 #define INT_CALLBACK_VC2                         INT_CALLBACK_ON
113 #define INT_CALLBACK_LVD                         INT_CALLBACK_ON
114 #define INT_CALLBACK_LCD                         INT_CALLBACK_ON
115 #define INT_CALLBACK_FLASH                       INT_CALLBACK_ON
116 #define INT_CALLBACK_RAM                         INT_CALLBACK_ON
117 #define INT_CALLBACK_CLKTRIM                     INT_CALLBACK_ON
118 
119 
120 /**
121  *******************************************************************************
122  ** \brief 中断优先级数据类型定义
123  ** \note
124  ******************************************************************************/
125 typedef enum en_irq_level
126 {
127     IrqLevel0  = 0u,               ///< 优先级0
128     IrqLevel1  = 1u,               ///< 优先级1
129     IrqLevel2  = 2u,               ///< 优先级2
130     IrqLevel3  = 3u,               ///< 优先级3
131 } en_irq_level_t;
132 
133 
134 /******************************************************************************
135  * Global function prototypes (definition in C source)
136  ******************************************************************************/
137 ///< 系统中断使能开关
138 extern void EnableNvic(IRQn_Type enIrq, en_irq_level_t enLevel, boolean_t bEn);
139 
140 
141 #ifdef __cplusplus
142 }
143 #endif
144 
145 
146 #endif /* __INTERRUPTS_HC32L19x_H__ */
147 
148 /******************************************************************************
149  * EOF (not truncated)
150  ******************************************************************************/
151