使用定时器,在配置定时器的时候发现有这个问题:
void TIM2_Configuration(void) //配置定时器2
{
TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseStructure.TIM_Prescaler = 0x02; //时钟预分频为3
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
}
其中 TIM_TimeBaseStructure.TIM_Prescaler = 0x02; //时钟预分频为3
和 TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
第一句应该是设置时钟预分频,第二句说是分频因子,TDTS = Tck_tim ,
定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。
在TIMx_CR1中的CKD[1:0]可以由用户设置对输入信号的采样频率基准,有三种选择:
1)采样频率基准fDTS=定时器输入频率fCK_INT
2)采样频率基准fDTS=定时器输入频率fCK_INT/2
3)采样频率基准fDTS=定时器输入频率fCK_INT/4
例如:当fCK_INT=72MHz时,选择fDTS=fCK_INT/2=36MHz,采样频率fSAMPLING=fDTS/2=18MHz且N=6,则频率高于3MHz的信号将被这个滤波器滤除,有效地屏蔽了高于3MHz的干扰。
比如,结合输入捕获的中断,可以轻松地实现按键的去抖动功能,而不需要软件的干预;这可是由硬件实现的去抖动功能,大大节省了软件的开销和程序代码的长度。
每个定时器最多可以实现4个按键的输入,这个方法也可以用于键盘矩阵的扫描,而且因为是通过中断实现,软件不需频繁的进行扫描动作。
也就是说这个地方主要用于输入捕获的设置。具体在看看输入捕获的章节。
文章评论(0条评论)
登录后参与讨论