26 CONTROL_DDR &= ~(CONTROL_MASK);
27 #ifdef DISABLE_CONTROL_PIN_PULL_UP
28 CONTROL_PORT &= ~(CONTROL_MASK);
30 CONTROL_PORT |= CONTROL_MASK;
32 CONTROL_PCMSK |= CONTROL_MASK;
33 PCICR |= (1 << CONTROL_INT);
42 uint8_t control_state = 0;
43 uint8_t pin = (CONTROL_PIN & CONTROL_MASK) ^ CONTROL_MASK;
44 #ifdef INVERT_CONTROL_PIN_MASK
45 pin ^= INVERT_CONTROL_PIN_MASK;
48 #ifdef ENABLE_SAFETY_DOOR_INPUT_PIN
49 if (
bit_istrue(pin,(1<<CONTROL_SAFETY_DOOR_BIT))) { control_state |= CONTROL_PIN_INDEX_SAFETY_DOOR; }
56 return(control_state);
74 #ifndef ENABLE_SAFETY_DOOR_INPUT_PIN
78 if (
bit_istrue(pin,CONTROL_PIN_INDEX_SAFETY_DOOR)) {
89 #ifdef ENABLE_SAFETY_DOOR_INPUT_PIN
125 uint8_t char_counter = 1;
126 uint8_t helper_var = 0;
127 float parameter, value;
128 switch(
line[char_counter] ) {
136 case '$':
case 'G':
case 'C':
case 'X':
185 #ifdef HOMING_SINGLE_AXIS_COMMANDS
186 }
else if (
line[3] == 0) {
206 if (
line[++char_counter] == 0 ) {
209 #ifdef ENABLE_BUILD_INFO_WRITE_COMMAND
212 helper_var = char_counter;
214 line[char_counter-helper_var] =
line[char_counter];
215 }
while (
line[char_counter++] != 0);
223 #ifdef ENABLE_RESTORE_EEPROM_DEFAULT_SETTINGS
226 #ifdef ENABLE_RESTORE_EEPROM_CLEAR_PARAMETERS
229 #ifdef ENABLE_RESTORE_EEPROM_WIPE_ALL
238 if (
line[++char_counter] == 0 ) {
257 helper_var = char_counter;
259 line[char_counter-helper_var] =
line[char_counter];
260 }
while (
line[char_counter++] != 0);
263 if (helper_var) {
return(helper_var); }
265 helper_var = trunc(parameter);
282 #ifdef FORCE_BUFFER_SYNC_DURING_WCO_CHANGE
313 for (idx=0; idx<
N_AXIS; idx++) {
322 int32_t system_convert_corexy_to_x_axis_steps(int32_t *steps)
324 return( (steps[A_MOTOR] + steps[B_MOTOR])/2 );
326 int32_t system_convert_corexy_to_y_axis_steps(int32_t *steps)
328 return( (steps[A_MOTOR] - steps[B_MOTOR])/2 );
337 for (idx=0; idx<
N_AXIS; idx++) {
338 #ifdef HOMING_FORCE_SET_ORIGIN
uint8_t gc_execute_line(char *line)
volatile uint8_t sys_rt_exec_alarm
volatile uint8_t sys_rt_exec_accessory_override
volatile uint8_t sys_rt_exec_motion_override
volatile uint8_t sys_rt_exec_state
void mc_homing_cycle(uint8_t cycle_mask)
uint8_t read_float(char *line, uint8_t *char_counter, float *float_ptr)
#define bit_isfalse(x, mask)
#define bit_istrue(x, mask)
#define bit_true(x, mask)
void protocol_buffer_synchronize()
static char line[LINE_BUFFER_SIZE]
void report_ngc_parameters()
void report_grbl_settings()
void report_feedback_message(uint8_t message_code)
void report_gcode_modes()
void report_execute_startup_message(char *line, uint8_t status_code)
void report_startup_line(uint8_t n, char *line)
void report_build_info(char *line)
void report_status_message(uint8_t status_code)
#define STATUS_IDLE_ERROR
#define MESSAGE_RESTORE_DEFAULTS
#define STATUS_SETTING_DISABLED
#define STATUS_BAD_NUMBER_FORMAT
#define STATUS_CHECK_DOOR
#define STATUS_INVALID_STATEMENT
#define MESSAGE_ALARM_UNLOCK
#define STATUS_SETTING_READ_FAIL
uint8_t settings_read_startup_line(uint8_t n, char *line)
void settings_store_build_info(char *line)
void settings_store_startup_line(uint8_t n, char *line)
uint8_t settings_store_global_setting(uint8_t parameter, float value)
uint8_t settings_read_build_info(char *line)
void settings_restore(uint8_t restore_flag)
#define BITFLAG_HOMING_ENABLE
#define SETTINGS_RESTORE_PARAMETERS
#define SETTINGS_RESTORE_DEFAULTS
float steps_per_mm[N_AXIS]
uint8_t report_wco_counter
void system_clear_exec_accessory_overrides()
void system_clear_exec_alarm()
void system_set_exec_state_flag(uint8_t mask)
void system_clear_exec_state_flag(uint8_t mask)
void system_set_exec_accessory_override_flag(uint8_t mask)
float system_convert_axis_steps_to_mpos(int32_t *steps, uint8_t idx)
void system_set_exec_alarm(uint8_t code)
uint8_t system_control_get_state()
uint8_t system_check_safety_door_ajar()
void system_execute_startup(char *line)
uint8_t system_execute_line(char *line)
void system_convert_array_steps_to_mpos(float *position, int32_t *steps)
uint8_t system_check_travel_limits(float *target)
void system_flag_wco_change()
void system_set_exec_motion_override_flag(uint8_t mask)
void system_clear_exec_motion_overrides()
#define CONTROL_PIN_INDEX_CYCLE_START
#define CONTROL_PIN_INDEX_RESET
#define CONTROL_PIN_INDEX_FEED_HOLD