新手上路
- 积分
- 44
- 金钱
- 44
- 注册时间
- 2019-8-28
- 在线时间
- 16 小时
|
2金钱
本帖最后由 goliage 于 2019-9-28 16:35 编辑
各位大神请问,下面代码 程序一直在while里跳不出去(n_x仿真时已经大于len了),而且频率会变。怎么回事?我把TIM_SetAutoreload(TIM2,n_x) 里的n_x改成固定值也跳不出去
void motoX(u8 dir ,u16 vmax_x ,u32 len)
{
u16 n=80000/vmax_x ; //80000是定时器频率,
n_x=0; //写在TIM中断里,记录脉冲数的,没更新一个周期就加1
PEout(4)=dir;
while((len-n_x)>0)
{
TIM_SetAutoreload(TIM2,n_x) ; //减速运行
TIM_SetCompare1(TIM2,n_x-50);
}
....
TIM_Cmd(TIM2, DISABLE);
TIM_ITConfig(TIM2,TIM_IT_Update,DISABLE );
|
|