上一篇我们分享了Grbl主循环把串口发来的数据解析,分发到不同的执行机构,其中最重要的两个使system_execute_line()和gc_execute_line();我们先分析system_execute_line().
这个函数在system.c中实现的,主要功能就是解析和执行系统命令,也就是$开头的命令:
$0 // 打印帮助信息
$J // 手动模式执行
$$ // 打印设置参数
$G // 打印G代码执行状态
$C // 设置检查G代码模式
$X // 解除警报
$# // 打印Grbl NGC参数
$H // 归位
$S // 使Grbl进入休眠状态
$I // 打印或设置构建信息
$R // 恢复Grbl默认设置
$N // 打印或设置启动脚本
这部分代码不算复杂,不过多解释。
除了解析系统命令system.c还实现了一些控制功能,比如:安全门,重置,暂停,恢复等功能,它是通过引脚中断来实现的,这块比较独立,我们下一篇单独分享引脚映射与中断处理。