不进中断那就用定时器输出PWM信号配置麻烦一点
驱动电机的频率一般就10K以下的频率中断对主函数的影响 ...
感谢回答,我的步进电机的细分是4000,就是4000个脉冲一圈,10K的频率速度有点慢了! 想都不要想想要产生固定脉冲数量肯定要中断,除非你主函数执行 你若安好_清风徐来 发表于 2020-4-2 10:20
想都不要想想要产生固定脉冲数量肯定要中断,除非你主函数执行
貌似是这样的,暂时没有看到好的办法,高级定时器的好像可以,不过最大只能255! 要两个定时器,其中一个用单脉冲模式,另一个为slave模式输出pwm 1.使能预装载,这样可以在比较或更新事件中断里计数,计数到达时停掉PWM。 局限性:PWM载波频率不能太快,否则中断执行时间不一定够。 当然也可以中断只计数,中断外判断,但对时间窗口要求很高。
2. 再快一点方法可以使用DMA。 多少个脉冲开辟多少个+1BUFFER。 最后一个用来关掉PWM。 这样PWM载波可以很快。 局限性:RAM占用很多。
以上两个思路供你参考:) 长见识了 raytheonn 发表于 2020-4-9 09:42
貌似是这样的,暂时没有看到好的办法,高级定时器的好像可以,不过最大只能255! ...
我若没记错,高级定时器的重复计数寄存器是16位应该不止255吧,还有定时器的级联也可以考虑的
刚才查了一下,记错了,除重复计数器是7~0位有效,其余三个PSC CNT ARR 为16位有效
butterflyspring 发表于 2020-4-10 16:31
1.使能预装载,这样可以在比较或更新事件中断里计数,计数到达时停掉PWM。 局限性:PWM载波频率不能太快, ...
谢谢回答!很有参考意义! 结帖了,最终还是用了中断,加上提醒加减速,目前效果还行,速度不能太快!
页:
1
[2]