|
发表于 2011-4-15 20:07:34
|
显示全部楼层
回复【5楼】gylsxcn 山清水秀
回复【4楼】tiancaigao7 天才杨威利
-----------------------------------------------------------------------
我修改的是预分频寄存器的值,试了好长时间都不行。周期寄存器的值也是自动装载的啊,但是tim_setautoreload(timx, motor1tcnt1val);是设置timx自动重装载寄存器值,它们有什么去别。如果调用函数tim_setautoreload(tim2, motor1tcnt1val)是不是就不用修改预分频寄存器和周期寄存器的值?
控制步进电机跟占空比没有太大的关系,一般百分之五十就可以了吧,主要还是控制频率。步进电机的脉冲个控制转过的角度,但是这个脉冲个数怎么控制?
-----------------------------------------------------------------------
你可以使能Update中断
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
在 TIM_IT_Update 中断里 根据电机转动方向 步数+1 或者 步数-1, 比如转动一圈是2000个脉冲,+ 或 - 了2000,就说明走了一整圈
TIM_OCInitStructure.TIM_Pulse 总是 TIM_TimeBaseStructure.TIM_Period 的一半就可以
这样占空比是50%
TIM_TimeBaseStructure.TIM_Prescaler“粗略”的分频,然后调整 TIM_TimeBaseStructure.TIM_Period 更改输出的频率 |
|