📄 h8300h.c
字号:
Vector = pISRCB_a->Vector; <b>if</b> (Vector <= <a href="H83H_VECTOR_INT7.FIND-DEF">H83H_VECTOR_INT7</a> || Vector > <a href="H83H_VECTOR_AD_END.FIND-DEF">H83H_VECTOR_AD_END</a>) <b>return</b>; <b>switch</b>(Vector) { <b>case</b> <a href="H83H_VECTOR_WATCHDOG.FIND-DEF">H83H_VECTOR_WATCHDOG</a>: <a href="#hrdi_UnregWatchdog">hrdi_UnregWatchdog</a>(); <font color="#6920ac">/* watchdog timer */</font> <b>break</b>; <b>case</b> <a href="H83H_VECTOR_REFRESH.FIND-DEF">H83H_VECTOR_REFRESH</a>: <a href="#hrdi_UnregRefresh">hrdi_UnregRefresh</a>(); <font color="#6920ac">/* refresh controller */</font> <b>break</b>; <b>case</b> <a href="H83H_VECTOR_ITU0_A.FIND-DEF">H83H_VECTOR_ITU0_A</a>: <b>case</b> <a href="H83H_VECTOR_ITU0_B.FIND-DEF">H83H_VECTOR_ITU0_B</a>: <b>case</b> <a href="H83H_VECTOR_ITU0_OVER.FIND-DEF">H83H_VECTOR_ITU0_OVER</a>: <b>case</b> <a href="H83H_VECTOR_ITU1_A.FIND-DEF">H83H_VECTOR_ITU1_A</a>: <b>case</b> <a href="H83H_VECTOR_ITU1_B.FIND-DEF">H83H_VECTOR_ITU1_B</a>: <b>case</b> <a href="H83H_VECTOR_ITU1_OVER.FIND-DEF">H83H_VECTOR_ITU1_OVER</a>: <b>case</b> <a href="H83H_VECTOR_ITU2_A.FIND-DEF">H83H_VECTOR_ITU2_A</a>: <b>case</b> <a href="H83H_VECTOR_ITU2_B.FIND-DEF">H83H_VECTOR_ITU2_B</a>: <b>case</b> <a href="H83H_VECTOR_ITU2_OVER.FIND-DEF">H83H_VECTOR_ITU2_OVER</a>: <b>case</b> <a href="H83H_VECTOR_ITU3_A.FIND-DEF">H83H_VECTOR_ITU3_A</a>: <b>case</b> <a href="H83H_VECTOR_ITU3_B.FIND-DEF">H83H_VECTOR_ITU3_B</a>: <b>case</b> <a href="H83H_VECTOR_ITU3_OVER.FIND-DEF">H83H_VECTOR_ITU3_OVER</a>: <b>case</b> <a href="H83H_VECTOR_ITU4_A.FIND-DEF">H83H_VECTOR_ITU4_A</a>: <b>case</b> <a href="H83H_VECTOR_ITU4_B.FIND-DEF">H83H_VECTOR_ITU4_B</a>: <b>case</b> <a href="H83H_VECTOR_ITU4_OVER.FIND-DEF">H83H_VECTOR_ITU4_OVER</a>: <a href="#hrdi_UnregITU">hrdi_UnregITU</a>(Vector); <font color="#6920ac">/* timer channel */</font> <b>break</b>; <b>case</b> <a href="H83H_VECTOR_DMAC0_0A.FIND-DEF">H83H_VECTOR_DMAC0_0A</a>: <b>case</b> <a href="H83H_VECTOR_DMAC0_0B.FIND-DEF">H83H_VECTOR_DMAC0_0B</a>: <b>case</b> <a href="H83H_VECTOR_DMAC0_1A.FIND-DEF">H83H_VECTOR_DMAC0_1A</a>: <b>case</b> <a href="H83H_VECTOR_DMAC0_1B.FIND-DEF">H83H_VECTOR_DMAC0_1B</a>: <b>case</b> <a href="H83H_VECTOR_DMAC1_5F2A.FIND-DEF">H83H_VECTOR_DMAC1_2A</a>: <b>case</b> <a href="H83H_VECTOR_DMAC1_2B.FIND-DEF">H83H_VECTOR_DMAC1_2B</a>: <b>case</b> <a href="H83H_VECTOR_DMAC1_5F3A.FIND-DEF">H83H_VECTOR_DMAC1_3A</a>: <b>case</b> <a href="H83H_VECTOR_DMAC1_3B.FIND-DEF">H83H_VECTOR_DMAC1_3B</a>: <a href="#hrdi_UnregDMA">hrdi_UnregDMA</a>(Vector); <font color="#6920ac">/* DMA controller */</font> <b>break</b>; <b>case</b> <a href="H83H_VECTOR_SCI0_ERR.FIND-DEF">H83H_VECTOR_SCI0_ERR</a>: <b>case</b> <a href="H83H_VECTOR_SCI0_RX.FIND-DEF">H83H_VECTOR_SCI0_RX</a>: <b>case</b> <a href="H83H_VECTOR_SCI0_TX.FIND-DEF">H83H_VECTOR_SCI0_TX</a>: <b>case</b> <a href="H83H_VECTOR_SCI0_END.FIND-DEF">H83H_VECTOR_SCI0_END</a>: <b>case</b> <a href="H83H_VECTOR_SCI1_ERR.FIND-DEF">H83H_VECTOR_SCI1_ERR</a>: <b>case</b> <a href="H83H_VECTOR_SCI1_RX.FIND-DEF">H83H_VECTOR_SCI1_RX</a>: <b>case</b> <a href="H83H_VECTOR_SCI1_TX.FIND-DEF">H83H_VECTOR_SCI1_TX</a>: <b>case</b> <a href="H83H_VECTOR_SCI1_END.FIND-DEF">H83H_VECTOR_SCI1_END</a>: <a href="#hrdi_UnregSCI">hrdi_UnregSCI</a>(Vector); <font color="#6920ac">/* serial controller */</font> <b>break</b>; <b>case</b> <a href="H83H_VECTOR_AD_END.FIND-DEF">H83H_VECTOR_AD_END</a>: <a href="#hrdi_UnregAD">hrdi_UnregAD</a>(); <font color="#6920ac">/* A/D converter */</font> <b>break</b>; <font color="blue"><b>default</b>:</font> <font color="#6920ac">/* all reserved interrupt sources */</font> <b>break</b>; } <b>return</b>;<font color="#6920ac">/************************ * EXCEPTION HANDLING * ************************/</font> <font color="#6920ac">/* None */</font>}<font color="#6920ac">/* * hrdi_Mask * * --------------------------------------------- * GI_enabMask | Hardware Interrupt Sources * bits | * ----------------+---------------------------- * 0 - 7 | IRQn, where n=0-7 * 8 | WOVI (watchdog timer) * 9 | CMI (refresh controller) * ----------------+---------------------------- * 10 - 13 | DMAC group 0 * 14 - 17 | DMAC group 1 * 18 - 21 | SCI Channel 0 * 22 - 25 | SCI Channel 1 * 26 | A/D * ----------------+---------------------------- * 27 | ITU channel 0 * 28 | ITU channel 1 * 29 | ITU channel 2 * 30 | ITU channel 3 * 31 | ITU channel 4 * ------------------------------------------- */</font><i>static</i> <i>hrdi_Mask_t</i> hrdi_MaskITU_g[22]= { 0x00000000l, <font color="#6920ac">/* Reserved 22 */</font> 0x00000000l, <font color="#6920ac">/* Reserved 23 */</font> 0x08000000l, <font color="#6920ac">/* IMIA0 */</font> 0x08000000l, <font color="#6920ac">/* IMIB0 */</font> 0x08000000l, <font color="#6920ac">/* OVI0 */</font> 0x00000000l, <font color="#6920ac">/* Reserved 27 */</font> 0x10000000l, <font color="#6920ac">/* IMIA1 */</font> 0x10000000l, <font color="#6920ac">/* IMIB1 */</font> 0x10000000l, <font color="#6920ac">/* OVI1 */</font> 0x00000000l, <font color="#6920ac">/* Reserved 31 */</font> 0x20000000l, <font color="#6920ac">/* IMIA2 */</font> 0x20000000l, <font color="#6920ac">/* IMIB2 */</font> 0x20000000l, <font color="#6920ac">/* OVI2 */</font> 0x00000000l, <font color="#6920ac">/* Reserved 35 */</font> 0x40000000l, <font color="#6920ac">/* IMIA3 */</font> 0x40000000l, <font color="#6920ac">/* IMIB3 */</font> 0x40000000l, <font color="#6920ac">/* OVI3 */</font> 0x00000000l, <font color="#6920ac">/* Reserved 39 */</font> 0x80000000l, <font color="#6920ac">/* IMIA4 */</font> 0x80000000l, <font color="#6920ac">/* IMIB4 */</font> 0x80000000l, <font color="#6920ac">/* OVI4 */</font> 0x00000000l <font color="#6920ac">/* Reserved 43 */</font>};<font size="+1"><i>hrdi_Mask_t</i> <b><font color="azure1"><a name="hrdi_Mask">hrdi_Mask</a></font></b>(<i>hrdi_Vector_t</i> Vector_a){</font><font color="#6920ac">/********************* * LOCAL VARIABLES * *********************/</font> <font color="#6920ac">/* None */</font><font color="#6920ac">/********************* * PROCEDURE LOGIC * *********************/</font> <b>if</b> (Vector_a < <a href="H83H_VECTOR_INT0.FIND-DEF">H83H_VECTOR_INT0</a> || Vector_a > <a href="H83H_VECTOR_AD_END.FIND-DEF">H83H_VECTOR_AD_END</a>) <font color="#6920ac">/* vector number is out of range */</font> <b>return</b> 0ul; <b>if</b> (Vector_a <= <a href="H83H_VECTOR_REFRESH.FIND-DEF">H83H_VECTOR_REFRESH</a>) <b>return</b> 0x1ul<<(Vector_a - <a href="H83H_VECTOR_INT0.FIND-DEF">H83H_VECTOR_INT0</a>); <b>if</b> (Vector_a >= <a href="H83H_VECTOR_DMAC0_0A.FIND-DEF">H83H_VECTOR_DMAC0_0A</a>) <b>return</b> 0x1ul<<((Vector_a - <a href="H83H_VECTOR_DMAC0_0A.FIND-DEF">H83H_VECTOR_DMAC0_0A</a>) + 10); <b>return</b> hrdi_MaskITU_g[Vector_a-<a href="H83H_VECTOR_RESERVED_22.FIND-DEF">H83H_VECTOR_RESERVED_22</a>];<font color="#6920ac">/************************ * EXCEPTION HANDLING * ************************/</font> <font color="#6920ac">/* None */</font>}<font size="+1"><i>hrdi_Mask_t</i> <b><font color="azure1"><a name="hrdi_Disable">hrdi_Disable</a></font></b>(<i>hrdi_Mask_t</i> Mask_a){</font><font color="#6920ac">/********************* * LOCAL VARIABLES * *********************/</font> <a href="CRTX_REG_1.FIND-DEF">CRTX_REG_1</a> <i>hrdi_GlobalIntrCookie_t</i> Cookie;<font color="#6920ac">/********************* * PROCEDURE LOGIC * *********************/</font> Cookie = <a href="hrdi_GlobalIntrDisable.FIND-FUNC">hrdi_GlobalIntrDisable</a>(); Mask_a &= hrdi_Environ_g.Defined; <font color="#6920ac">/* mask out not registerd vectors */</font> Mask_a &= hrdi_Environ_g.Enabled; <font color="#6920ac">/* mask out disabled vectors */</font> hrdi_Environ_g.Enabled &= ~Mask_a; <font color="#6920ac">/* disable interrupts */</font> <a href="H83H_IER.FIND-DEF">H83H_IER</a> &= ~(<i>crtx_Byte_t</i>)(Mask_a & 0xFF); <b>if</b> ((Mask_a & 0xFFFFFF00) != 0ul) { <font color="#6920ac">/* global interrupts shall be disabled */</font> Cookie |= 0xC0; } <a href="hrdi_GlobalIntrEnable.FIND-FUNC">hrdi_GlobalIntrEnable</a>(Cookie); <b>return</b> Mask_a;<font color="#6920ac">/************************ * EXCEPTION HANDLING * ************************/</font> <font color="#6920ac">/* None */</font>}<font size="+1"><i>crtx_Void_t</i> <b><font color="azure1"><a name="hrdi_Enable">hrdi_Enable</a></font></b>(<i>hrdi_Mask_t</i> Mask_a){</font><font color="#6920ac">/********************* * LOCAL VARIABLES * *********************/</font> <a href="CRTX_REG_1.FIND-DEF">CRTX_REG_1</a> <i>hrdi_GlobalIntrCookie_t</i> Cookie;<font color="#6920ac">/********************* * PROCEDURE LOGIC * *********************/</font> Cookie = <a href="hrdi_GlobalIntrDisable.FIND-FUNC">hrdi_GlobalIntrDisable</a>(); Mask_a &= hrdi_Environ_g.Defined; <font color="#6920ac">/* mask out not registerd vectors */</font> hrdi_Environ_g.Enabled |= Mask_a; <font color="#6920ac">/* enable interrupts */</font> <a href="H83H_IER.FIND-DEF">H83H_IER</a> |= (<i>crtx_Byte_t</i>)(Mask_a & 0xFF); <b>if</b> (((hrdi_Environ_g.Enabled ^ hrdi_Environ_g.Defined) & 0xFFFFFF00) == 0) { <b>if</b> (hrdi_Environ_g.GlobalCounter == 0) { <font color="#6920ac">/* we are going to enable global interrupts */</font> Cookie &= 0x3F; } } <a href="hrdi_GlobalIntrEnable.FIND-FUNC">hrdi_GlobalIntrEnable</a>(Cookie); <b>return</b>;<font color="#6920ac">/************************ * EXCEPTION HANDLING * ************************/</font> <font color="#6920ac">/* None */</font>}<font size="+1"><i>crtx_Mask_t</i> <b><font color="azure1"><a name="hrdi_SetLisrIntrMask">hrdi_SetLisrIntrMask</a></font></b>(<i>crtx_Mask_t</i> Mask_a){</font><font color="#6920ac">/********************* * LOCAL VARIABLES * *********************/</font> <font color="#6920ac">/* None */</font><font color="#6920ac">/********************* * PROCEDURE LOGIC * *********************/</font> <font color="#6920ac">/* * assume global interrupts are disabled on entry and may be re-enabled * on return */</font> Mask_a &= hrdi_Environ_g.Defined; <font color="#6920ac">/* mask out not registerd vectors */</font> Mask_a &= hrdi_Environ_g.Enabled; <font color="#6920ac">/* mask out disabled vectors */</font> hrdi_Environ_g.Enabled &= ~Mask_a; <font color="#6920ac">/* disable interrupts */</font> <a href="H83H_IER.FIND-DEF">H83H_IER</a> &= ~(<i>crtx_Byte_t</i>)(Mask_a & 0xFF); <b>if</b> ((Mask_a & 0xFFFFFF00) == 0ul) { <font color="#6920ac">/* global interrupts shall be enabled */</font> <a href="hrdi_GlobalIntrEnable.FIND-FUNC">hrdi_GlobalIntrEnable</a>(0x0); } <b>return</b> Mask_a;<font color="#6920ac">/************************ * EXCEPTION HANDLING * ************************/</font> <font color="#6920ac">/* None */</font>}<font size="+1"><i>crtx_Void_t</i> <b><font color="azure1"><a name="hrdi_RestoreLisrIntrMask">hrdi_RestoreLisrIntrMask</a></font></b>(<i>crtx_Mask_t</i> Mask_a){</font><font color="#6920ac">/********************* * LOCAL VARIABLES * *********************/</font> <a href="CRTX_REG_1.FIND-DEF">CRTX_REG_1</a> <i>hrdi_GlobalIntrCookie_t</i> Cookie;<font color="#6920ac">/********************* * PROCEDURE LOGIC * *********************/</font> Cookie = <a href="hrdi_GlobalIntrDisable.FIND-FUNC">hrdi_GlobalIntrDisable</a>();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -