金牌会员
 
- 积分
- 1074
- 金钱
- 1074
- 注册时间
- 2012-1-10
- 在线时间
- 238 小时
|
5金钱
外接正交编码器分辨率1000码/转,速度快(如1秒转1周)时,计数脉冲少很多。求解决方法没?
/*----------------------------------------------------------------*/
/*初始化TIM3定时器-时间基数 */
TIM_TimeBaseStructure.TIM_Period =1000*4; //设定计数器重装值
TIM_TimeBaseStructure.TIM_Prescaler =0;//设置预分频,=0无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获
TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1 ; //设置时钟分频系数:不分频
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式,DIR方向
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
/*-----------------------------------------------------------------*/
/* 编码配置-编码模式 */
TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12,
TIM_ICPolarity_BothEdge ,TIM_ICPolarity_BothEdge); //使用编码器模式3,上升下降都计数
/*----------------------------------------------------------------*/
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //TIM输入捕获上升沿
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//TIM输入1/2/3/4选择对应的与IC1/IC2/IC3/IC4相连
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //TIM捕获在捕获输入上每探测到一个边沿执行一次
TIM_ICInitStructure.TIM_ICFilter = 6; //选择输入比较滤波器:0x0~0xF
TIM_ICInit(TIM3, &TIM_ICInitStructure); //将TIM_ICInitStructure中的指定参数初始化TIM3
|
|