注释
|
将它们发送到 GUI,然后 GUI 将它们传递给 GRBL |
作者
|
我想将它们发送到 GRBL,而不是 GUI。 |
|
类似于这个? 我正在“收听”第二个处理器中的 grbls 实时报告。要更改为 MPG 模式,我已将一个开关连接到 grbl 处理器(在最终版本中将是 momentray)。如果 grbl 可以切换到 MPG 模式(处于 IDLE 状态),它会将 MPG:1 添加到实时报告中,告诉第二个处理器接管 grbl 的输入流。这可以通过开关完成,但我的实现使用辅助 UART 输入。当切换回正常模式时,我将 MPG:0 添加到实时报告中。 |
作者
|
是的,与此非常相似,它很棒! |
|
第二个 UART 流仅作为输入,主要始终处理输出流,以便并行连接到 PC 和 MPG 处理器。 由于我使用函数指针来访问 HAL(在我的 ARM 端口中),我通过交换相关指针将输入流切换到辅助 UART,这里是我现在如何为 TI 的 MSP432 处理器执行此操作: static void modeSelect (bool mpg_mode)
{
BITBAND_PERI(MODE_PORT->IE, MODE_SWITCH_PIN) = 0;
BITBAND_PERI(MODE_PORT->IES, MODE_SWITCH_PIN) = !mpg_mode;
BITBAND_PERI(MODE_PORT->IFG, MODE_SWITCH_PIN) = 0;
BITBAND_PERI(MODE_PORT->IE, MODE_SWITCH_PIN) = 1;
// Deny entering MPG mode if busy
if(mpg_mode == sys.mpg_mode || (mpg_mode && (gc_state.file_run || sys.state != STATE_IDLE)))
return;
BITBAND_PERI(MODE_PORT->OUT, MODE_LED_PIN) = mpg_mode;
serialSelect(mpg_mode);
if(mpg_mode) {
serial2RxFlush();
hal.serial_read = serial2GetC;
hal.serial_get_rx_buffer_available = serial2RxFree;
hal.serial_reset_read_buffer = serial2RxFlush;
hal.serial_cancel_read_buffer = serial2RxCancel;
} else {
serialRxFlush();
hal.serial_read = serialGetC;
hal.serial_get_rx_buffer_available = serialRxFree;
hal.serial_reset_read_buffer = serialRxFlush;
hal.serial_cancel_read_buffer = serialRxCancel;
}
// Report WCO on first status report request from MPG processor
if(mpg_mode)
sys.report_wco_counter = 1;
// Force a realtime status report
hal.protocol_process_realtime('?');
sys.mpg_mode = mpg_mode;
}
IMO 同样可以通过在 UART RX 信号上使用物理开关来实现。 |
贡献者
|
外部吊坠支持在下一版本的待办事项列表中。 |
作者
|
什么时候发布? |
|
看看这里,如果你有兴趣加入… |


您好,
我目前正在构建一个自主点动控制器。吊坠使用读取正交编码器和一些开关的 ATmega328p,它将提供 $J Gcode 指令。
我想知道将这些指令发送给 GRBL 的最佳方式是什么。
我应该在使用吊坠时切换 TX 和 RX 线还是有更好的选择?