//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

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

被折叠的 条评论
为什么被折叠?



