GRBL V1.1F源码中文注解 -Stepper篇

本文是对GRBL V1.1F源码的中文注解,主要关注Stepper模块。Grbl是一个在Arduino平台上运行的开源运动控制软件,广泛应用于3D打印机、激光切割机等项目。Stepper.c文件包含了对步进电机驱动的实现,负责执行运动计划。
摘要由CSDN通过智能技术生成

都快过去一年了,不是有点懒,懒的不行不行的了,为尽快完成这个事情,做到有始有终,今天就更新2篇。另一篇为《GRBL V1.1F源码中文注解 - Protocol篇》

Grbl是一个用于控制机器的运动的免费的,开源的,高性能的软件,制造物体或使东西移动,并将直接在Arduino平台上运行。如果制造商运动是一个行业,Grbl将是行业标准。

大多数开源3D打印机的核心都有Grbl控制器。它已经被用于数百个项目,包括激光切割机、自动手写器、钻孔机、涂鸦画家和古怪的绘图机。Grbl由于其性能、简单性和对硬件的节俭要求,已经发展成为一种小的开源现象。

Stepper源码文件为步进电机驱动模块,是Grbl高级控制模块的部分,使用步进电机执行运动计划

Stepper.h

/*
  Stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors
  Part of Grbl-Advanced

  Copyright (c) 2011-2016 Sungeun K. Jeon for Gnea Research LLC
  Copyright (c) 2009-2011 Simen Svale Skogsrud
  Copyright (c)	2017 Patrick F.

  Grbl-Advanced is free softwa
ain()主函数首先执行下面初始化函数 serial_init(); // Setup serial baud rate and interrupts settings_init(); // Load Grbl settings from EEPROM stepper_init(); // 配置步进方向和中断定时器 system_init(); // 配置引脚分配别针和pin-change中断 memset(&sys, 0, sizeof(system_t)); // Clear all system variables sys.abort = true; // Set abort to complete initialization 完成初始化设置中止 sei(); // Enable interrupts #ifdef HOMING_INIT_LOCK //宏运算(settings.flags & (1 << 4)) != 0结果flags等于执行sys.state = STATE_ALARM //系统状态赋值为报警状态 if (bit_istrue(settings.flags,BITFLAG_HOMING_ENABLE)) { sys.state = STATE_ALARM; } #endif _____________________________________________________________________________________________________________________________________ 接下来是一些主要初始化循环 for(;;) { serial_reset_read_buffer(); // Clear serial read buffer gc_init(); // Set g-code parser to default state spindle_init(); //主轴 coolant_init(); //冷却液 limits_init(); //极限开关 probe_init(); //探测 plan_reset(); // Clear block buffer and planner variables 清晰块缓冲区和规划师变量 st_reset(); // Clear stepper subsystem variables. 清晰的步进系统变量。 // Sync cleared gcode and planner positions to current system position. 同步清除gcode和策划师职位当前系统位置。 plan_sync_position(); gc_sync_position(); // Reset system variables. sys.abort = false; //系统中止标志 sys_rt_exec_state = 0; //系统执行标志状态变量状态位清零。 sys_rt_exec_alarm = 0; //系统执行警报标志变量清零。 sys.suspend = false; //系统暂停标志位,取消,和安全的门。 sys.soft_limit = false; //系统限制标志状态机复位。(布尔) protocol_main_loop(); //主协议循环 } // ___________________________________________________________________________
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值