1 /**************************************************************************//**
\r
5 * @brief Enhanced Input Capture Timer (ECAP) driver source file
\r
8 * Copyright (C) 2017 Nuvoton Technology Corp. All rights reserved.
\r
9 *****************************************************************************/
\r
14 /** @addtogroup Standard_Driver Standard Driver
\r
18 /** @addtogroup ECAP_Driver ECAP Driver
\r
22 /** @addtogroup ECAP_EXPORTED_FUNCTIONS ECAP Exported Functions
\r
27 * @brief Enable ECAP function
\r
28 * @param[in] ecap The pointer of the specified ECAP module.
\r
29 * @param[in] u32FuncMask Input capture function select
\r
30 * - \ref ECAP_DISABLE_COMPARE
\r
31 * - \ref ECAP_COMPARE_FUNCTION
\r
33 * @details This macro enable input capture function and select compare and reload function.
\r
35 void ECAP_Open(ECAP_T* ecap, uint32_t u32FuncMask)
\r
37 /* Clear Input capture mode*/
\r
38 ecap->CTL0 = ecap->CTL0 & ~(ECAP_CTL0_CMPEN_Msk);
\r
40 /* Enable Input Capture and set mode */
\r
41 ecap->CTL0 |= ECAP_CTL0_CAPEN_Msk | (u32FuncMask);
\r
47 * @brief Disable ECAP function
\r
48 * @param[in] ecap The pointer of the specified ECAP module.
\r
50 * @details This macro disable input capture function.
\r
52 void ECAP_Close(ECAP_T* ecap)
\r
54 /* Disable Input Capture*/
\r
55 ecap->CTL0 &= ~ECAP_CTL0_CAPEN_Msk;
\r
59 * @brief This macro is used to enable input channel interrupt
\r
60 * @param[in] ecap Specify ECAP port
\r
61 * @param[in] u32Mask The input channel Mask
\r
62 * - \ref ECAP_CTL0_CAPIEN0_Msk
\r
63 * - \ref ECAP_CTL0_CAPIEN1_Msk
\r
64 * - \ref ECAP_CTL0_CAPIEN2_Msk
\r
65 * - \ref ECAP_CTL0_OVIEN_Msk
\r
66 * - \ref ECAP_CTL0_CMPIEN_Msk
\r
68 * @details This macro will enable the input channel_n interrupt.
\r
70 void ECAP_EnableINT(ECAP_T* ecap, uint32_t u32Mask)
\r
72 /* Enable input channel interrupt */
\r
73 ecap->CTL0 |= (u32Mask);
\r
75 /* Enable NVIC ECAP IRQ */
\r
76 if((ecap == ECAP0) || (ecap == ECAP0_NS))
\r
78 NVIC_EnableIRQ(ECAP0_IRQn);
\r
82 NVIC_EnableIRQ(ECAP1_IRQn);
\r
87 * @brief This macro is used to disable input channel interrupt
\r
88 * @param[in] ecap Specify ECAP port
\r
89 * @param[in] u32Mask The input channel number
\r
90 * - \ref ECAP_CTL0_CAPIEN0_Msk
\r
91 * - \ref ECAP_CTL0_CAPIEN1_Msk
\r
92 * - \ref ECAP_CTL0_CAPIEN2_Msk
\r
93 * - \ref ECAP_CTL0_OVIEN_Msk
\r
94 * - \ref ECAP_CTL0_CMPIEN_Msk
\r
96 * @details This macro will disable the input channel_n interrupt.
\r
98 void ECAP_DisableINT(ECAP_T* ecap, uint32_t u32Mask)
\r
100 /* Disable input channel interrupt */
\r
101 (ecap->CTL0) &= ~(u32Mask);
\r
103 /* Disable NVIC ECAP IRQ */
\r
104 if((ecap == ECAP0) || (ecap == ECAP0_NS))
\r
106 NVIC_DisableIRQ(ECAP0_IRQn);
\r
110 NVIC_DisableIRQ(ECAP1_IRQn);
\r
114 /*@}*/ /* end of group ECAP_EXPORTED_FUNCTIONS */
\r
116 /*@}*/ /* end of group ECAP_Driver */
\r
118 /*@}*/ /* end of group Standard_Driver */
\r
121 /*** (C) COPYRIGHT 2017 Nuvoton Technology Corp. ***/
\r