/*********************************************************************//** * @brief Configuration for Capture register * @param[in] TIMx Pointer to timer device, should be: * - LPC_TIM0: TIMER0 peripheral * - LPC_TIM1: TIMER1 peripheral * - LPC_TIM2: TIMER2 peripheral * - LPC_TIM3: TIMER3 peripheral * @param[in] TIM_CaptureConfigStruct Pointer to TIM_CAPTURECFG_Type * - CaptureChannel: set the channel to capture data * - RisingEdge : if SET, Capture at rising edge * - FallingEdge : if SET, Capture at falling edge * - IntOnCaption : if SET, Capture generate interrupt * @return None **********************************************************************/ void TIM_ConfigCapture(LPC_TIM_TypeDef *TIMx, TIM_CAPTURECFG_Type *TIM_CaptureConfigStruct) { TIMx->CCR &= ~TIM_CCR_CHANNEL_MASKBIT(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->RisingEdge) TIMx->CCR |= TIM_CAP_RISING(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->FallingEdge) TIMx->CCR |= TIM_CAP_FALLING(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->IntOnCaption) TIMx->CCR |= TIM_INT_ON_CAP(TIM_CaptureConfigStruct->CaptureChannel); }
/*********************************************************************//** * @brief Configuration for Capture register * @param[in] TIMx Pointer to timer device * - CaptureChannel: set the channel to capture data * - RisingEdge : if SET, Capture at rising edge * - FallingEdge : if SET, Capture at falling edge * - IntOnCaption : if SET, Capture generate interrupt * @param[in] TIM_CaptureConfigStruct Pointer to TIM_CAPTURECFG_Type * @return None **********************************************************************/ void TIM_ConfigCapture(LPC_TIM_TypeDef *TIMx, TIM_CAPTURECFG_Type *TIM_CaptureConfigStruct) { uint32_t timer; CHECK_PARAM(PARAM_TIMx(TIMx)); timer = TIM_ConverPtrToTimeNum(TIMx) ; TIMx->CCR &= ~TIM_CCR_CHANNEL_MASKBIT(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->RisingEdge) TIMx->CCR |= TIM_CAP_RISING(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->FallingEdge) TIMx->CCR |= TIM_CAP_FALLING(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->IntOnCaption) TIMx->CCR |= TIM_INT_ON_CAP(TIM_CaptureConfigStruct->CaptureChannel); }
/*********************************************************************//** * @brief Configuration for Capture register * @param[in] TIMx Pointer to timer device, can be LPC_TMR16B0, * LPC_TMR16B1, LPC_TMR32B0, LPC_TMR32B1 * @param[in] TIM_CaptureConfigStruct Pointer to TIM_CAPTURECFG_Type * - CaptureChannel: set the channel to capture data * - RisingEdge : if SET, Capture at rising edge * - FallingEdge : if SET, Capture at falling edge * - IntOnCaption : if SET, Capture generate interrupt * @return None **********************************************************************/ void TIM_ConfigCapture(TMR_TypeDef *TIMx, TIM_CAPTURECFG_Type *TIM_CaptureConfigStruct) { CHECK_PARAM(PARAM_TIMx(TIMx)); TIMx->CCR &= ~TIM_CCR_CHANNEL_MASKBIT(0); if (TIM_CaptureConfigStruct->RisingEdge) { TIMx->CCR |= TIM_CAP_RISING(0); } if (TIM_CaptureConfigStruct->FallingEdge) { TIMx->CCR |= TIM_CAP_FALLING(0); } if (TIM_CaptureConfigStruct->IntOnCaption) { TIMx->CCR |= TIM_INT_ON_CAP(0); } }
/*********************************************************************//** * @brief Configuration for Capture register * @param[in] TIMx Pointer to timer device * - CaptureChannel: set the channel to capture data * - RisingEdge : if SET, Capture at rising edge * - FallingEdge : if SET, Capture at falling edge * - IntOnCaption : if SET, Capture generate interrupt * @param[in] TIM_CaptureConfigStruct Pointer to TIM_CAPTURECFG_Type * @return None **********************************************************************/ void TIM_ConfigCapture(TIM_TypeDef *TIMx, TIM_CAPTURECFG_Type *TIM_CaptureConfigStruct) { CHECK_PARAM(PARAM_TIMx(TIMx)); uint32_t timer = TIM_ConverPtrToTimeNum(TIMx) ; TIMx->CCR &= ~TIM_CCR_CHANNEL_MASKBIT(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->RisingEdge) TIMx->CCR |= TIM_CAP_RISING(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->FallingEdge) TIMx->CCR |= TIM_CAP_FALLING(TIM_CaptureConfigStruct->CaptureChannel); if (TIM_CaptureConfigStruct->IntOnCaption) TIMx->CCR |= TIM_INT_ON_CAP(TIM_CaptureConfigStruct->CaptureChannel); // set pin caption input PINSEL_ConfigPin((PINSEL_CFG_Type *)&(timer_caption_pin[2*timer + TIM_CaptureConfigStruct->CaptureChannel])); }