Grbl源码解析与移植-主循环

主循环这块算是Grbl中最复杂的内容了,里面掺杂了很多模块调用,我们抽丝剥茧,顺着脉络一点点进行。先主要分析main.c和protocol.c

首先在主入口中我们了解过,Arduino中把main拆分成了setup和loop,setup一般用于只需要运行一次的配置功能,loop用于需要反复执行的功能。Grbl的main函数也做了类似的事情。

我们简化一下,只看关键信息:

Main(){

// 初始化系统参数,包括变量,中断等

For(;;){

  // 运行时初始化

  protocol_main_loop(); // 主循环

}

}

我们再看下protocol_main_loop()这个函数,它做了一件重要的事情,就是处理Grbl协议,启动一个无限循环,读取串口字符串,解析字符串,然后分发到相应的执行机构!其他的代码,基本上都是为了保证这一过程顺利进行而执行的一系列检查。

简化的代码如下:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容