TIM

xiaoxiao2021-02-28  115

 

 

/** * @brief Gets the TIMx Input Capture 1 value. * @param TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral. * @retval Capture Compare 1 Register value. */ uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx) { /* Check the parameters */ assert_param(IS_TIM_LIST8_PERIPH(TIMx)); /* Get the Capture 1 Register value */ return TIMx->CCR1; }

 

/** * @brief Gets the TIMx Counter value. * @param TIMx: where x can be 1 to 17 to select the TIM peripheral. * @retval Counter Register value. */ uint16_t TIM_GetCounter(TIM_TypeDef* TIMx) { /* Check the parameters */ assert_param(IS_TIM_ALL_PERIPH(TIMx)); /* Get the Counter Register value */ return TIMx->CNT; }

 

 

当捕获成功时,TIM_GetCapture1()和TIM_GetCounter()得到的值一样吗? TIM_GetCapture1对应寄存器CRR1,TIM_GetCounter对应寄存器CNT

 

答:

看你处理的速度了, 正常来说TIM_GetCapture1才是最准确的.完全硬件级别的保存.

捕获/比较寄存器 1: TIMx_CCR1,该寄存器用来存储捕获发生时, TIMx_CNT的值;

我们从 TIMx_CCR1 就可以读出通道 1 捕获发生时刻的 TIMx_CNT 值

 

 

 

 

 

 

 

 

Alen.Wang 认证博客专家 嵌入式硬件 驱动开发 arm开发 智能机器人硕士,擅长复杂电路设计、嵌入式软件编程及系统架构设计,从事嵌入式AI开发工作,有多年项目开发经验。我的联系邮箱 alen_wp@163.com
转载请注明原文地址: https://www.6miu.com/read-65871.html

最新回复(0)