当前位置: 首页 > 工具软件 > Marlin > 使用案例 >

Marlin代码分析一些记录

爱炯
2023-12-01

读Marlin代码理解

1、工作原理

Marlin固件分前后台系统。前台系统即主程序,后台系统则是中断程序。在Marlin中用到了两个定时器中断:定时器0和定时器1。
主程序在前台的任务有:
1、 与上位机进行通信,获得G指令
2、 进行G指令解析,区分指令内容及指令参数,并将参数换算为整数
3、 G指令的分类执行
4、 温度管理、限位开关和LCD的控制
在G指令的分类执行中,Marlin固件用到了队列的概念,将每条G指令变成一个运动block,一个block包含的与该G指令下运动所需的所有参数(终点坐标、速度、加速度、挤出丝量等)。在前台系统中,程序只负责对G指令进行分析,并计算和生成一个block,并将block打入block缓冲池中。其他,则是与上位机进行交互。
定时器0主要负责对挤出头的温度进行控制。在主程序中设置好定时器0的定时时间,等待定时中断的产生,并在中断中进行温度检测控制。
定时器1主要负责对步进电机进行控制,是Marlin中运动控制部分的核心。在主程序中先设置好定时器1的初始定时时间,等待中断后,在中断执行block中的运动。首先从block缓冲池中取一个block,分析该block中的运动参数,设置运动方向,然后调控步进电机运动。定时器1的定时时间就是步进电机的运动速度,所以在控制步进电机的速度方面,可以通过时间计算来实现。每个中断执行一个block中的1步或几步,这个参数在系统初始化时进行相关设置。
1.将arduino驱动stm32的库文件至于目录
C:\Users\anycubic.platformio\packages\framework-arduinoststm32后,

 类似资料: