你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
sting 发表于 2015-7-29 08:02 高级定时器都有正交编码功能,可参考F0xx或F1xx的库
yanhaijian 发表于 2015-7-29 08:14 /* 配置定时器处于编码器模式 */ TIM_DeInit(TIM3); TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
夏明smile 发表于 2015-7-29 11:49 正交编码实在厉害,误差基本为零了
小蚂蚁快溜跑 发表于 2015-7-29 14:31 ~非常感谢~中断服务程序需要做什么吗?
TIM_DeInit(TIM3);
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_Prescaler = 0x0;
TIM_TimeBaseStructure.TIM_Period = 65535 - 1;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI1,TIM_ICPolarity_Falling, TIM_ICPolarity_Falling);
TIM_ICStructInit(&TIM_ICInitStructure);
TIM_ICInitStructure.TIM_ICFilter = 15;
TIM_ICInit(TIM3, &TIM_ICInitStructure);
// 清除所有未决中断
TIM_ClearFlag(TIM3, TIM_FLAG_Update);
TIM_ITConfig(TIM3, TIM_IT_Update, DISABLE);
TIM3->SR = 0xfffe;
TIM_Cmd(TIM3, ENABLE);
~~谢谢~~
~非常感谢~中断服务程序需要做什么吗?
看了些开发板的资料,好像没讲过这方面的,过来请教下大神
void TIM3_IRQHandler(void)
{
/* Clear the interrupt pending flag */
ENCODER_TIMER->SR = 0xfffe;
if ( (ENCODER_TIMER->CR1 & TIM_CounterMode_Down) == TIM_CounterMode_Down)
{
Encoder--;
}
else
{
Encoder++;
}
}