体育app源码(Grbl源码解析移植-运动控制)
更新时间:2022-10-02 09:59:31上一篇我们分享了G代码解析器,G代码解析后获得了运动的基本信息:曲线类型(直线,圆),坐标位置信息,速度等,然后用这些参数调用mc_line()和mc_arc()函数画直线或圆弧。
这两个函数是在motion_control.c中实现的,目的是给grbl的运动控制具体实现提供上层接口,最重要的函数是mc_line(),mc_arc()函数通过直线插补模拟圆弧,然后调用mc_line(),把当前线段的信息存入block_buffer队列中,用前瞻算法修正队列中前后线段的速度和加速度。装入队列后,在主循环中通过protocol_auto_cycle_start消费block_buffer的数据。
void mc_line(float target, float feed_rate, uint8_t invert_feed_rate)
{
//如果限位使能,就检查target值是否超出了轴能到达的最远位置,如果超出了就告警限位错误,并复位系统
if (bit_istrue(settings.flags,BITFLAG_SOFT_LIMIT_ENABLE)) { limits_soft_check(target); }
…
do {
//这个函数的功能很多,有很多地方都会调用它,这里调用的目的是判断有没有系统异常发生,比如系统告警或复位,如果有异常,这个函数里处理异常的代码就会执行,没有就继续运行
protocol_execute_runtime(); // Check for any run-time commands
if (sys.abort) { return; } // Bail, if system abort.
//检查block_buffer是否满,如果满就执行尝试打开线段插补执行使能开关。如果系统配置里开启了auto-cycle功能,就可以自动开始执行线段插补,block_buffer里的线段会被系统执行插补操作而空出一些空间,这样队列就不满了,也就退出下面的do-while循环继续执行代码
if ( plan_check_full_buffer() ) {
protocol_auto_cycle_start();
} // Auto-cycle start when buffer is full.
else { break; }
} while (1);
//把当前线段的的信息添加到block_buffer队列里,这个函数里包含了前瞻算法的处理过程
plan_buffer_line(target, feed_rate, invert_feed_rate);
。。。
}
相关推荐
-
电子竞技与传统体育(谈电子竞技与传统体育的距离,以及电子竞技在未来可能的形态)
查看详情
-
五星体育直播流(五星体育直播米兰马拉松!良心推荐,小编写着写着也想去了!)
查看详情
-
优酷为什么不播cba(优酷体育和咪咕布局CBA版权,会是一笔划算的生意吗?)
查看详情
-
国足纹身禁令是谁发的(体育总局“国足文身禁令”?媒体人:有争议但也是一种鞭策)
查看详情
-
奥运会是体育界最高赛事吗(尔特的实力究竟到了哪一个层面?)
查看详情
-
虎扑体育nba直播(NBA季后赛直播观看方式,视频直播和文字直播随心看)
查看详情
-
五星体育手机直播在线(CCTV5和五星体育直播NBA东决G3,波士顿PK热火!塔图姆主场争连胜)
查看详情
-
腾讯体育亚冠直播(新赛季的五大联赛,在哪儿看?)
查看详情
- 最新资讯
-
- 2022-11-18 有名的足球队员号码(足球球衣号码代表人物,个个都是超级巨星,谁最强?)
- 2022-11-15 2o18足球世界杯实况(《实况足球》——一首写给世界杯的情书(1998))
- 2022-11-15 世界杯预选赛直播男篮中国对巴(世界杯又来了!国足今晚首战马尔代夫)
- 2022-11-15 武汉0比1沧州(前线丨十人作战,绝不放弃,武汉队0:2憾负沧州雄狮)
- 2022-11-15 英格兰比利时2020(意大利VS英格兰:终极之战!这一冠双方都盼了53年)
- 2022-11-15 欧冠历届冠军一览图2021(「欧冠冠军」盘点2010-2022欧冠冠军 谁最强)
- 2022-11-15 中国网球(中国网球政策重大变革,你振奋吗?)
- 2022-11-15 2018世界杯西班牙红黄牌(世界杯红黄牌历史,齐达内,球王都是吃牌能手,巴西右闸黄牌最多)
- 2022-11-15 雷霆队队史最佳阵容组合(雷霆队历史十大球星,队史第一人是城市骄傲)
- 2022-11-15 中国vs日本篮球直播免费观看(央视直播!中国男篮VS日本队,胡金秋不在,能否冲击冠军?)
- 推荐攻略
-
-
乌克兰总统身亡(乌总统泽连斯基解除乌总检察长及国家安全局局长职务)
-
足球比赛每个半场多少分钟(足球比赛每半场几分钟)
-
2021中超今天哪里转播(今晚!中超2场对决,CCTV5 直播申花PK武汉,腾讯体育亚泰vs天津)
-
2022梅西坠机身亡事件结果(足坛变天!巴萨无缘榜首的2年:梅西告别,老马去世,2-8惨案)
-
2021全运会篮球直播赛程辽宁(4月22日央视直播:CBA总决赛;赵心童vs马奎尔,塞尔比vs颜丙涛)
-
中国最强导弹(世界洲际导弹前10排名,中国东风导弹领先美国,第一名堪称导弹王)
-
2021篮球比赛在哪里看(CCTV5直播NBA 辽篮争夺CBA总决赛冠军点 颜丙涛出战斯诺克世锦赛)
-
东航结果不敢公布了(民航局再次回应东航MU5735事故调查!查明原因有多难,多久公布?)
-