A31L12x F/W Packages  1.4.0
ABOV Cortex-M0+ Core based MCUs Integrated Driver
A31L12x_hal_intc.h
Go to the documentation of this file.
1 /***************************************************************************//****************************************************************************/
34 
35 #ifndef _INTC_H_
36 #define _INTC_H_
37 
38 #include "A31L12x.h"
39 #include "A31L12x_hal_aa_types.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 //******************************************************************************
46 // Constant
47 //******************************************************************************
48 
49 // External Interrupt Port Number
50 #define PORTA (0x0uL)
51 #define PORTB (0x1uL)
52 #define PORTC (0x2uL)
53 #define PORTD (0x3uL)
54 #define PORTE (0x4uL)
55 #define PORTF (0x5uL)
57 // External Interrupt Number
58 /*
59 #define EINT0_SEL (0x0uL)
60 #define EINT1_SEL (0x1uL)
61 #define EINT2_SEL (0x2uL)
62 #define EINT3_SEL (0x3uL)
63 */
64 #define EINT0 (0x0uL)
65 #define EINT1 (0x1uL)
66 #define EINT2 (0x2uL)
67 #define EINT3 (0x3uL)
68 
69 // External Interrupt Trigger Selection Control
70 /*
71 #define TRG_EDGE (0x0uL)
72 #define TRG_LEVEL (0x1uL)
73 */
74 #define ITRIGx_Edge INTC_PBTRIG_ITRIG12_Edge
75 #define ITRIGx_Level INTC_PBTRIG_ITRIG12_Level
76 
77 // External Interrupt Enable Control
78 /*
79 #define EInt_DISABLE (0x0uL)
80 #define EInt_LOW_LEVEL_INT (0x1uL)
81 #define EInt_HIGH_LEVEL_INT (0x2uL)
82 #define EInt_FALLING_EDGE_INT (0x1uL)
83 #define EInt_RISING_EDGE_INT (0x2uL)
84 #define EInt_BOTH_EDGE_INT (0x3uL)
85 */
86 #define INTCTLx_Disable INTC_PBCR_INTCTL12_Disable
87 #define INTCTLx_LowLevel INTC_PBCR_INTCTL12_FallingEdgeLowLevel
88 #define INTCTLx_HighLevel INTC_PBCR_INTCTL12_RisingEdgeHighLevel
89 #define INTCTLx_FallingEdge INTC_PBCR_INTCTL12_FallingEdgeLowLevel
90 #define INTCTLx_RisingEdge INTC_PBCR_INTCTL12_RisingEdgeHighLevel
91 #define INTCTLx_BothEdge INTC_PBCR_INTCTL12_BothEdgeNoLevel
92 
93 // External Interrupt Flag Clear Control
94 /*
95 #define EFLAG0 (0x1uL << 0)
96 #define EFLAG1 (0x1uL << 1)
97 #define EFLAG2 (0x1uL << 2)
98 #define EFLAG3 (0x1uL << 3)
99 #define EFLAG4 (0x1uL << 4)
100 #define EFLAG5 (0x1uL << 5)
101 #define EFLAG6 (0x1uL << 6)
102 #define EFLAG7 (0x1uL << 7)
103 */
104 // #define PnFLAG_FLAG15 (0x1uL << INTC_PBFLAG_FLAG15_Pos)
105 // #define PnFLAG_FLAG14 (0x1uL << INTC_PBFLAG_FLAG14_Pos)
106 // #define PnFLAG_FLAG13 (0x1uL << INTC_PBFLAG_FLAG13_Pos)
107 #define PnFLAG_FLAG12 (0x1uL << INTC_PBFLAG_FLAG12_Pos)
108 #define PnFLAG_FLAG11 (0x1uL << INTC_PBFLAG_FLAG11_Pos)
109 #define PnFLAG_FLAG10 (0x1uL << INTC_PBFLAG_FLAG10_Pos)
110 #define PnFLAG_FLAG9 (0x1uL << INTC_PBFLAG_FLAG9_Pos)
111 #define PnFLAG_FLAG8 (0x1uL << INTC_PBFLAG_FLAG8_Pos)
112 #define PnFLAG_FLAG7 (0x1uL << INTC_PBFLAG_FLAG7_Pos)
113 #define PnFLAG_FLAG6 (0x1uL << INTC_PBFLAG_FLAG6_Pos)
114 #define PnFLAG_FLAG5 (0x1uL << INTC_PBFLAG_FLAG5_Pos)
115 #define PnFLAG_FLAG4 (0x1uL << INTC_PBFLAG_FLAG4_Pos)
116 #define PnFLAG_FLAG3 (0x1uL << INTC_PBFLAG_FLAG3_Pos)
117 #define PnFLAG_FLAG2 (0x1uL << INTC_PBFLAG_FLAG2_Pos)
118 #define PnFLAG_FLAG1 (0x1uL << INTC_PBFLAG_FLAG1_Pos)
119 #define PnFLAG_FLAG0 (0x1uL << INTC_PBFLAG_FLAG0_Pos)
120 
121 // External Interrupt Configuration Selection Control
122 #ifdef PORTA
123 #define CONFx_PA INTC_EINT0CONF1_CONF0_PA
124 #endif
125 #ifdef PORTB
126 #define CONFx_PB INTC_EINT0CONF1_CONF0_PB
127 #endif
128 #ifdef PORTC
129 #define CONFx_PC INTC_EINT0CONF1_CONF0_PC
130 #endif
131 #ifdef PORTD
132 #define CONFx_PD INTC_EINT0CONF1_CONF0_PD
133 #endif
134 #ifdef PORTE
135 #define CONFx_PE INTC_EINT0CONF1_CONF0_PE
136 #endif
137 #ifdef PORTF
138 #define CONFx_PF INTC_EINT0CONF1_CONF0_PF
139 #endif
140 
141 // Interrupt Source Mask Control
142 /*
143 #define LVI_MASK (0x1uL << 0)
144 #define WUT_MASK (0x1uL << 1)
145 #define WDT_MASK (0x1uL << 2)
146 #define EINT0_MASK (0x1uL << 3)
147 #define EINT1_MASK (0x1uL << 4)
148 #define EINT2_MASK (0x1uL << 5)
149 #define EINT3_MASK (0x1uL << 6)
150 #define TIMER40_MASK (0x1uL << 7)
151 #define TIMER41_MASK (0x1uL << 8)
152 #define TIMER42_MASK (0x1uL << 9)
153 #define I2C0_MASK (0x1uL << 10)
154 #define USART10_MASK (0x1uL << 11)
155 #define SPI0_MASK (0x1uL << 12)
156 #define SPI1_MASK (0x1uL << 13)
157 #define I2C1_MASK (0x1uL << 14)
158 #define TIMER50_MASK (0x1uL << 15)
159 #define SC0_MASK (0x1uL << 16)
160 #define SC1_MASK (0x1uL << 17)
161 #define ADC_MASK (0x1uL << 18)
162 #define UART0_MASK (0x1uL << 19)
163 #define UART1_MASK (0x1uL << 20)
164 #define TIMER43_MASK (0x1uL << 21)
165 #define CMP_MASK (0x1uL << 22)
166 #define DMAC0_MASK (0x1uL << 23)
167 #define DMAC1_MASK (0x1uL << 24)
168 #define LPUART_MASK (0x1uL << 25)
169 #define RTCC_MASK (0x1uL << 28)
170 #define DMAC2_MASK (0x1uL << 29)
171 #define DMAC3_MASK (0x1uL << 30)
172 #define DMAC4_MASK (0x1uL << 31)
173 */
174 #define MSK_DMAC4 (0x1uL << INTC_MSK_IMSK31_DMAC4_Pos)
175 #define MSK_DMAC3 (0x1uL << INTC_MSK_IMSK30_DMAC3_Pos)
176 #define MSK_DMAC2 (0x1uL << INTC_MSK_IMSK29_DMAC2_Pos)
177 #define MSK_RTCC (0x1uL << INTC_MSK_IMSK28_RTCC_Pos)
178 #define MSK_IMSK27 (0x1uL << INTC_MSK_IMSK27_NULL_Pos)
179 #define MSK_IMSK26 (0x1uL << INTC_MSK_IMSK26_NULL_Pos)
180 #define MSK_LPUART (0x1uL << INTC_MSK_IMSK25_LPUART_Pos)
181 #define MSK_DMAC1 (0x1uL << INTC_MSK_IMSK24_DMAC1_Pos)
182 #define MSK_DMAC0 (0x1uL << INTC_MSK_IMSK23_DMAC0_Pos)
183 #define MSK_CMPn (0x1uL << INTC_MSK_IMSK22_CMPn_Pos)
184 #define MSK_TIMER43 (0x1uL << INTC_MSK_IMSK21_TIMER43_Pos)
185 #define MSK_UART1 (0x1uL << INTC_MSK_IMSK20_UART1_Pos)
186 #define MSK_UART0 (0x1uL << INTC_MSK_IMSK19_UART0_Pos)
187 #define MSK_ADC (0x1uL << INTC_MSK_IMSK18_ADC_Pos)
188 #define MSK_SC1 (0x1uL << INTC_MSK_IMSK17_SC1_Pos)
189 #define MSK_SC0 (0x1uL << INTC_MSK_IMSK16_SC0_Pos)
190 #define MSK_TIMER50 (0x1uL << INTC_MSK_IMSK15_TIMER50_Pos)
191 #define MSK_I2C1 (0x1uL << INTC_MSK_IMSK14_I2C1_Pos)
192 #define MSK_SPI1 (0x1uL << INTC_MSK_IMSK13_SPI1_Pos)
193 #define MSK_SPI0 (0x1uL << INTC_MSK_IMSK12_SPI0_Pos)
194 #define MSK_USART10 (0x1uL << INTC_MSK_IMSK11_USART10_Pos)
195 #define MSK_I2C0 (0x1uL << INTC_MSK_IMSK10_I2C0_Pos)
196 #define MSK_TIMER42 (0x1uL << INTC_MSK_IMSK9_TIMER42_Pos)
197 #define MSK_TIMER41 (0x1uL << INTC_MSK_IMSK8_TIMER41_Pos)
198 #define MSK_TIMER40 (0x1uL << INTC_MSK_IMSK7_TIMER40_Pos)
199 #define MSK_EINT3 (0x1uL << INTC_MSK_IMSK6_EINT3_Pos)
200 #define MSK_EINT2 (0x1uL << INTC_MSK_IMSK5_EINT2_Pos)
201 #define MSK_EINT1 (0x1uL << INTC_MSK_IMSK4_EINT1_Pos)
202 #define MSK_EINT0 (0x1uL << INTC_MSK_IMSK3_EINT0_Pos)
203 #define MSK_WDT (0x1uL << INTC_MSK_IMSK2_WDT_Pos)
204 #define MSK_WUT (0x1uL << INTC_MSK_IMSK1_WUT_Pos)
205 #define MSK_LVI (0x1uL << INTC_MSK_IMSK0_LVI_Pos)
206 
207 //******************************************************************************
208 // Macro
209 //******************************************************************************
210 
211 #ifdef PORTA
212 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
217 #define EIntPA_GetFg() (INTC->PAFLAG)
218 #endif
219 
220 #ifdef PORTB
221 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
226 #define EIntPB_GetFg() (INTC->PBFLAG)
227 #endif
228 
229 #ifdef PORTC
230 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
235 #define EIntPC_GetFg() (INTC->PCFLAG)
236 #endif
237 
238 #ifdef PORTD
239 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
244 #define EIntPD_GetFg() (INTC->PDFLAG)
245 #endif
246 
247 #ifdef PORTE
248 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
253 #define EIntPE_GetFg() (INTC->PEFLAG)
254 #endif
255 
256 #ifdef PORTF
257 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
262 #define EIntPF_GetFg() (INTC->PFFLAG)
263 #endif
264 
265 #ifdef PORTA
266 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
274 #define EIntPA_ClrFgBits( u32Bit ) (INTC->PAFLAG = u32Bit)
275 #endif
276 
277 #ifdef PORTB
278 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
286 #define EIntPB_ClrFgBits( u32Bit ) (INTC->PBFLAG = u32Bit)
287 #endif
288 
289 #ifdef PORTC
290 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
298 #define EIntPC_ClrFgBits(u32Bit) (INTC->PCFLAG = u32Bit)
299 #endif
300 
301 #ifdef PORTD
302 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
310 #define EIntPD_ClrFgBits( u32Bit ) (INTC->PDFLAG = u32Bit)
311 #endif
312 
313 #ifdef PORTE
314 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
322 #define EIntPE_ClrFgBits( u32Bit ) (INTC->PEFLAG = u32Bit)
323 #endif
324 
325 #ifdef PORTF
326 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
334 #define EIntPF_ClrFgBits( u32Bit ) (INTC->PFFLAG = u32Bit)
335 #endif
336 
337 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
345 #define Int_Mask( u32Msk ) (INTC->MSK = (INTC->MSK) & ~u32Msk)
346 
347 /*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*/
355 #define Int_UnMask( u32UnMsk ) (INTC->MSK = (INTC->MSK) | u32UnMsk)
356 
357 //******************************************************************************
358 // Function
359 //******************************************************************************
360 
361 void HAL_INT_EIntPx_SetReg( uint32_t u32Px, uint32_t u32pin, uint32_t u32Trig, uint32_t u32Con );
362 void HAL_INT_EIntCfg( uint32_t u32TarIntNum, uint32_t u32SrcPort, uint32_t u32SrcPin );
363 void HAL_INT_EInt_MaskEnable( uint32_t u32Src );
364 void HAL_INT_EInt_MaskDisable( uint32_t u32Src );
365 
366 #ifdef PORTA
367 void HAL_INT_EIntPA_ClearIntStatus( uint32_t u32Value );
368 #endif
369 #ifdef PORTB
370 void HAL_INT_EIntPB_ClearIntStatus( uint32_t u32Value );
371 #endif
372 #ifdef PORTC
373 void HAL_INT_EIntPC_ClearIntStatus( uint32_t u32Value );
374 #endif
375 #ifdef PORTD
376 void HAL_INT_EIntPD_ClearIntStatus( uint32_t u32Value );
377 #endif
378 #ifdef PORTE
379 void HAL_INT_EIntPE_ClearIntStatus( uint32_t u32Value );
380 #endif
381 #ifdef PORTF
382 void HAL_INT_EIntPF_ClearIntStatus( uint32_t u32Value );
383 #endif
384 
385 #ifdef PORTA
386 uint32_t HAL_INT_EIntPA_GetIntStatus( void );
387 #endif
388 #ifdef PORTB
389 uint32_t HAL_INT_EIntPB_GetIntStatus( void );
390 #endif
391 #ifdef PORTC
392 uint32_t HAL_INT_EIntPC_GetIntStatus( void );
393 #endif
394 #ifdef PORTD
395 uint32_t HAL_INT_EIntPD_GetIntStatus( void );
396 #endif
397 #ifdef PORTE
398 uint32_t HAL_INT_EIntPE_GetIntStatus( void );
399 #endif
400 #ifdef PORTF
401 uint32_t HAL_INT_EIntPF_GetIntStatus( void );
402 #endif
403 
404 #ifdef __cplusplus
405 }
406 #endif
407 
408 #endif /* _INTC_H_ */
409 
uint32_t HAL_INT_EIntPA_GetIntStatus(void)
Get PA Interrupt Flag.
uint32_t HAL_INT_EIntPD_GetIntStatus(void)
Get PD Interrupt Flag.
void HAL_INT_EIntPB_ClearIntStatus(uint32_t u32Value)
Clear PB Interrupt Flag.
Contains the ABOV typedefs for C standard types. It is intended to be used in ISO C conforming develo...
uint32_t HAL_INT_EIntPF_GetIntStatus(void)
Get PF Interrupt Flag.
void HAL_INT_EIntPD_ClearIntStatus(uint32_t u32Value)
Clear PD Interrupt Flag.
void HAL_INT_EInt_MaskDisable(uint32_t u32Src)
Disable Interrupt Source Mask.
void HAL_INT_EIntPE_ClearIntStatus(uint32_t u32Value)
Clear PE Interrupt Flag.
void HAL_INT_EInt_MaskEnable(uint32_t u32Src)
Enable Interrupt Source Mask.
void HAL_INT_EIntCfg(uint32_t u32TarIntNum, uint32_t u32SrcPort, uint32_t u32SrcPin)
Configure External Interrupt Group.
void HAL_INT_EIntPx_SetReg(uint32_t u32Px, uint32_t u32pin, uint32_t u32Trig, uint32_t u32Con)
Configure External Interrupt Trigger.
void HAL_INT_EIntPA_ClearIntStatus(uint32_t u32Value)
Clear PA Interrupt Flag.
uint32_t HAL_INT_EIntPE_GetIntStatus(void)
Get PE Interrupt Flag.
void HAL_INT_EIntPC_ClearIntStatus(uint32_t u32Value)
Clear PC Interrupt Flag.
uint32_t HAL_INT_EIntPB_GetIntStatus(void)
Get PB Interrupt Flag.
void HAL_INT_EIntPF_ClearIntStatus(uint32_t u32Value)
Clear PF Interrupt Flag.
uint32_t HAL_INT_EIntPC_GetIntStatus(void)
Get PC Interrupt Flag.