OpenEdv-开源电子网

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

高级定时器 重复计数 PWM控制步进电机 库函数版

[复制链接]

11

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
460
金钱
460
注册时间
2014-11-23
在线时间
191 小时
发表于 2016-1-29 11:15:37 | 显示全部楼层 |阅读模式
高级定时器器的重复计数功能可避免在控制精确脉冲个数时频繁进中断函数,上图(公司电脑有保护,只能截图,见谅)                         1.png 3.jpg 2.png

这里重复计数器值预设为1(2个脉冲进一次中断,最大值127,也就是最大128个脉冲进一次中断),最后验证发20个,结果电机抖了40次,!
在中断里面可以更新频率,不知道可不可以更新重复计数器的值 ,中文参考手册上有点模糊,不是太懂,大侠们要是知道的话回复下!
另外一开始用的是通道1-PA8,结果不行,改了通道2-PA9就可以了,会不会是因为这个,实在不明白,大侠们帮看看!    4.png 5.png                                                    
菜鸟不可怕,就怕菜鸟不愿飞 | | | -===+=====_/(T)\_=====+===- | |/.\| | `-|\_/|-'
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

35

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
351
金钱
351
注册时间
2013-4-23
在线时间
98 小时
发表于 2016-1-29 12:10:25 | 显示全部楼层
这几天也在测试重复计数器。
你的应用没有用到RCR,就是溢出中断,给RCR的值必须减1才是你要的脉冲数。
回复 支持 反对

使用道具 举报

11

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
460
金钱
460
注册时间
2014-11-23
在线时间
191 小时
 楼主| 发表于 2016-1-29 21:37:50 | 显示全部楼层
dalianlwd 发表于 2016-1-29 12:10
这几天也在测试重复计数器。
你的应用没有用到RCR,就是溢出中断,给RCR的值必须减1才是你要的脉冲数。

TIM_RepetitionCounter就是RCR
菜鸟不可怕,就怕菜鸟不愿飞 | | | -===+=====_/(T)\_=====+===- | |/.\| | `-|\_/|-'
回复 支持 反对

使用道具 举报

4

主题

35

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
351
金钱
351
注册时间
2013-4-23
在线时间
98 小时
发表于 2016-1-29 23:48:44 | 显示全部楼层
你根本就没理解RCR的使用,你的RCR是1,就是两个脉冲,中断一次就是两个脉冲,dangqian记录的是进入中断的次数,计了两个脉冲,实际上num=20,就是40个脉冲,所以你的电机抖了40次。为什么抖?是因为你设的频率超过步进电机的启动频率。所以根本启动不起来。你的那个Mytime1_startup函数和中断函数,就是溢出中断的方式,那种频繁进中断的方式,根本不受控与RCR,所以有人就使用两个定时器的主从方式,来避免这种频繁进中断的方式。RCR是硬件方式,RCR是要赋值0-255的数,一次更新就可以完成这0-255数之间的任何数,而且还要改变ARR或PSC实现变频。哪还需要dangqian++去计数,去判断,累不累,中断里就是清除标志位,关中断,其他什么也不需要做,甚至不用中断也可以实现。具体你还是自己去体会吧。估计你还是坚信你这就是RCR方式。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 03:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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