码迷,mamicode.com
首页 > 其他好文 > 详细

Marlin固件的步进电机控制代码解析

时间:2016-03-30 16:33:20      阅读:3790      评论:0      收藏:0      [点我收藏+]

标签:步进电机   打印机   控制系统   控制器   寄存器   



对于的我来说,入行一年,依然有很多功能细节我还没能仔细了解,同时固件本身的代码智慧,我远没有完全消化。
Marlin的步进电机驱动,是由中断响应函数实现的。然而远没有这句话来的那么简单:我认为整个控制系统的关键在于路径规划器(planner)。 如果步进电机一直匀速运动,不需要任何规划器。不过对于3D打印机而言,x,y轴的运动往往速度变化非常频繁,如果采用匀速运动,速度的突然变化会给电路带来很大的冲击,影响机器的稳定性。这个物理层的原理,就决定了算法层应该采用加速减速的运动算法。    路径规划器意味着,程序在执行步进电机的动作之前,就已经计算好了整个过程的速度曲线。后面就只是Stepper模块忠实地执行。这样的好处在于减少了中断响应函数中的运算量。 由于3D打印机的机械运动相比控制器的16M主频来说要慢很多,采用缓存技术就能够有效的利用控制器速度。这里面蕴藏着“空间换取时间”的思想。路径规划器会在每次调用时,兢兢业业地把动作规划好,压入block_buffer这个队列。 步进电机的移动速度是严格按照规划器的规划结果,通过设置每次中断的周期寄存器来实现的。 

Marlin固件的步进电机控制代码解析

标签:步进电机   打印机   控制系统   控制器   寄存器   

原文地址:http://raevo.blog.51cto.com/11290293/1758415

(3)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!