这个编码器模式可以检测出电机旋转方向,比如我下面这段程序,首先对CNT计数器清零,10ms检测一下CNT计数器,来判断接收到的编码盘的脉冲数,那么在向下计数的时候,因为一开始CNT计数器被清零,那么CNT就为-1,-2,,,关键计数器不能为赋值啊!但是下面的程序却能返回赋值,说是补码什么的,不太理解求解释!
//读计数个数
int
tiM2_Encoder_Read(void)
{
TIM2_Encoder_Write(0); //计数器清0
delay_ms(10); //检测时间,可调节
return (int)((s16)(TIM2->CNT)); //数据类型转换
//记录边沿变化次数(几个栅格被记录4次)
}
一周热门 更多>