OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2006|回复: 2

控制步进电机中遇到的问题

[复制链接]

4

主题

14

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-7-20
在线时间
12 小时
发表于 2017-7-20 11:06:13 | 显示全部楼层 |阅读模式
1金钱
  想要做一个控制步进电机加速减速的过程,希望通过        在中断服务函数中改变TIM3->ARR= srd.step_delay*2;TIM3->CCR1=srd.step_delay;来改变脉冲频,以改变速度。但是我发觉这个动态赋值并不能起作用,这是为什么?希望各位大神指导指导

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-20 11:06:14 | 显示全部楼层
回复

使用道具 举报

4

主题

14

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-7-20
在线时间
12 小时
 楼主| 发表于 2017-7-21 11:29:39 | 显示全部楼层

new_step_delay = srd.step_delay - (((2 * (long)srd.step_delay) + rest)/(4 * srd.accel_count + 1));
rest = ((2 * (long)srd.step_delay)+rest)%(4 * srd.accel_count + 1);
new_step_delay = srd.min_delay;
TIM3->ARR=srd.step_delay;
我是在中断服务函数中对TIM3->ARR赋值,本来是让srd.step_delay逐渐变小进行加速,调试发现这个值,只赋值了一次,if(srd.run_state){PUL=!PUL;}仿真时发现服务函数中PUL是有变化的,但是TIM3->ARR的值不变化
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-22 21:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表