Grbl代码分析 cpu-map.h

这篇博客详细解析了Grbl代码中针对Arduino Mega328p的CPU_MAP_ATMEGA328P,包括串口、步进电机、方向、使能、限位、控制系统端口的中断向量和掩码配置,以及主轴、冷却和探头的相关定义。

//Arduino Mega328p.

#ifdef CPU_MAP_ATMEGA328P // (Arduino Uno)

  //串口中断向量

  #define SERIAL_RX     USART_RX_vect

  #define SERIAL_UDRE   USART_UDRE_vect

  // 步进电机脉冲端口,所有步进端口必须在一个通道里.

  #define STEP_DDR        DDRD

  #define STEP_PORT       PORTD

  #define X_STEP_BIT      2  // Uno Digital Pin 2

  #define Y_STEP_BIT      3  // Uno Digital Pin 3

  #define Z_STEP_BIT      4  // Uno Digital Pin 4

  #define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // 掩码

  //步进电机方向端口. 所有步进端口必须在一个通道里.

  #define DIRECTION_DDR     DDRD

  #define DIRECTION_PORT    PORTD

  #define X_DIRECTION_BIT   5  // Uno Digital Pin 5

  #define Y_DIRECTION_BIT   6  // Uno Digital Pin 6

  #define Z_DIRECTION_BIT   7  // Uno Digital Pin 7

  #define DIRECTION_MASK    ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // 掩码

  // 步进电机使能端口(一个端口控制所有电机)

  #define STEPPERS_DISABLE_DDR    DDRB

  #define STEPPERS_DISABLE_PORT   PORTB

  #define STEPPERS_DISABLE_BIT    0  // Uno Digital Pin 8

  #define STEPPERS_DISABLE_MASK   (1<<STEPPERS_DISABLE_BIT)

  /*硬限位端口和中断向量,所有端口必须在一个通道,但和其他输入端口可不再一个通//道内.*/

  #define LIMIT_DDR        DDRB

  #define LIMIT_PIN        PINB

  #define LIMIT_PORT       PORTB

  #define X_LIMIT_BIT      1  // Uno Digital Pin 9

  #define Y_LIMIT_BIT      2  // Uno Digital Pin 10

  #ifdef VARIABLE_SPINDLE // 因为变主轴转速用到PWM,所以需要Z 轴限位放到Pin 12.

    #define Z_LIMIT_BIT    4 // Uno Digital Pin 12

  #else

    #define Z_LIMIT_BIT    3  // Uno Digital Pin 11

  #endif

  #if !defined(ENABLE_DUAL_AXIS

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(); //主协议循环 } // ___________________________________________________________________________
### 回答1: grbl_v1_1h.zip是一个压缩文件,其中包含了一个名为"grbl_v1_1h"的软件版本。Grbl是一个开源的、高性能的G代码解释器和CNC控制器固件。它被广泛应用于DIYCNC(自制数控机床)和小型CNC机床中。 在grbl_v1_1h.zip中,你可以找到该软件的源代码和相关文档。源代码是用C语言编写的,用于控制CNC机床进行不同的运动和操作。相关文档包括安装说明、配置指南和用户手册,这些文档将帮助用户了解和使用这个软件。 要使用grbl_v1_1h.zip,你可以首先解压缩文件并查看其中的文档,以获取有关安装和配置的指南。然后,你可以根据文档中的说明,将源代码加载到你的CNC控制器中,并进行相应的配置。一旦成功安装和配置完毕,你就可以使用该软件来控制你的CNC机床进行各种操作,如切割、雕刻、钻孔等。 Grbl的不断发展和更新,让用户能够享受到更多功能和改进的体验。grbl_v1_1h可以帮助你将CNC机床变得更加智能和高效。无论是DIYCNC爱好者还是专业制造商,这个软件都提供了一个方便、灵活和可靠的解决方案,以实现他们的创意和生产需求。 总之,grbl_v1_1h.zip是一个包含了Grbl CNC控制器软件源代码和相关文档的压缩文件,用户可以通过使用该软件来控制和操作自己的CNC机床。 ### 回答2: grbl_v1_1h.zip是一个文件。这个文件是一个压缩包,可能包含了GRBL v1.1h版本的固件文件或者相关的程序文件。GRBL是一个开源的、高性能的G代码解释器,主要用于驱动小型CNC机床。GRBL v1.1h是GRBL团队开发的一种改进版本,可能在功能上有一些更新和改进。使用这个压缩包,我们可以解压出其中的文件,并根据需要进行安装或更新GRBL固件。这个固件可以用于控制CNC机床的运动,包括移动、旋转等。GRBL v1.1h可能在性能、精度、速度等方面有所提升,并且可能修复了一些以前版本中的bug。GRBL是一个非常流行和广泛使用的固件,它提供了开放源代码的优势,使用户能够根据需要自定义和调整GRBL的功能和性能。因此,grbl_v1_1h.zip可以被视为一个重要的文件,供CNC机床爱好者或专业人士使用。 ### 回答3: grbl_v1_1h.zip是一个软件文件,它是一个开源的数控机床控制软件。GRBL是一个非常流行的开源项目,它可以将G代码转换为机床控制命令,从而控制机床进行加工操作。 GRBL_v1_1h是GRBL软件的一个特定版本,它是GRBL开发者为了改进、修复错误和添加新功能而发布的一个更新版本。它在原有GRBL_v1_1版本的基础上进行了改进,提供更稳定和可靠的性能。 grbl_v1_1h.zip文件是用于安装和更新GRBL_v1_1h软件的压缩文件。要使用该软件,首先需要下载该文件并解压缩,然后将解压后的文件加载到适当的设备或平台上。 一旦安装了GRBL_v1_1h软件,用户就可以使用它来控制数控机床进行各种加工操作。用户可以通过编写和加载G代码,指定所需的加工路径和操作参数。GRBL_v1_1h将根据用户提供的G代码生成相应的机床控制命令,并向机床发送这些命令,从而实现对机床的精确控制。 总之,grbl_v1_1h.zip是一个用于安装和更新GRBL_v1_1h软件的文件,该软件是一个开源的数控机床控制软件。它可以将G代码转换为机床控制命令,从而实现对机床的精确控制。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值