diff --git a/stm-firmware/include/reflow-controller/safety/safety-config.h b/stm-firmware/include/reflow-controller/safety/safety-config.h index 1afd24e..009ef27 100644 --- a/stm-firmware/include/reflow-controller/safety/safety-config.h +++ b/stm-firmware/include/reflow-controller/safety/safety-config.h @@ -122,12 +122,6 @@ enum analog_value_monitor { */ #define SAFETY_MIN_STACK_FREE 0x100 -#define PID_CONTROLLER_ERR_CAREMASK (ERR_FLAG_STACK | ERR_FLAG_AMON_UC_TEMP | ERR_FLAG_AMON_VREF | \ - ERR_FLAG_TIMING_PID | ERR_FLAG_TIMING_MEAS_ADC | ERR_FLAG_MEAS_ADC_OFF | \ - ERR_FLAG_MEAS_ADC_OVERFLOW) - -#define HALTING_CAREMASK (ERR_FLAG_STACK | ERR_FLAG_AMON_UC_TEMP) - #define SAFETY_ADC_VREF_MVOLT (2500.0f) #define SAFETY_ADC_VREF_TOL_MVOLT (100.0f) #define SAFETY_ADC_TEMP_LOW_LIM (0.0f) diff --git a/stm-firmware/ui/button.c b/stm-firmware/ui/button.c index 1bf8c85..cd95217 100644 --- a/stm-firmware/ui/button.c +++ b/stm-firmware/ui/button.c @@ -53,6 +53,7 @@ void button_init() enum button_state button_read_event() { uint64_t time_delta; + uint64_t activation_stmp; enum button_state temp_state; if (override_state != BUTTON_IDLE) { @@ -66,7 +67,13 @@ enum button_state button_read_event() int_state = BUTTON_IDLE; return temp_state; } else { - time_delta = systick_get_global_tick() - to_active_timestamp; + /* Unfortunately I don't jave a better idea for now to ensure, + * that to_active_timestamp is read atomically + */ + __disable_irq(); + activation_stmp = to_active_timestamp; + __enable_irq(); + time_delta = systick_get_global_tick() - activation_stmp; if (time_delta >= BUTTON_LONG_ON_TIME_MS) return BUTTON_LONG; else if (time_delta >= BUTTON_SHORT_ON_TIME_MS) diff --git a/stm-firmware/ui/gui.c b/stm-firmware/ui/gui.c index f9f9ba2..37662af 100644 --- a/stm-firmware/ui/gui.c +++ b/stm-firmware/ui/gui.c @@ -791,7 +791,7 @@ static void gui_menu_root_entry(struct lcd_menu *menu, enum menu_entry_func_entr } } -int gui_handle() +int gui_handle(void) { int32_t rot_delta; enum button_state button; @@ -813,7 +813,7 @@ int gui_handle() return 1; } -void gui_init() +void gui_init(void) { rotary_encoder_setup(); button_init();