初级会员

- 积分
- 159
- 金钱
- 159
- 注册时间
- 2014-8-4
- 在线时间
- 35 小时
|
将AB两相接入到TIMER两通道外,还分别接入外部中断,通过判断void EXTI1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line1) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line1);
if((TIM3->CR1 & TIM_CounterMode_Up) == TIM_CounterMode_Up)
{
if((TIM3->CR1 & TIM_CounterMode_Down) == TIM_CounterMode_Down);
else
cnt++;
}
}
}
void EXTI0_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line0);
if((TIM3->CR1 & TIM_CounterMode_Down) == TIM_CounterMode_Down)
{
cnt--;
}
}
}来实现判断旋转方向,但是发现正转和反转一圈的脉冲数竟然不一样,附上代码,希望大家帮忙看看。还有没有什么好办法来实现编码判断方向啊??
|
|