diff --git a/kraftsensor.c b/kraftsensor.c index 621872b..823daac 100644 --- a/kraftsensor.c +++ b/kraftsensor.c @@ -12,6 +12,8 @@ int32_t kraftsensor_value; uint8_t kraftsensor_valid; +int32_t kraftsensor_zero_offset = 0/*197700*/; + void timer2_init() { TCCR2A = (1< 10000){ // if(abs(last_read - kraftsensor_read) > 10000){ diff --git a/kraftsensor.h b/kraftsensor.h index 23e75ab..b0acbe1 100644 --- a/kraftsensor.h +++ b/kraftsensor.h @@ -8,6 +8,8 @@ extern int32_t kraftsensor_value; extern uint8_t kraftsensor_valid; +extern int32_t kraftsensor_zero_offset; + void timer2_init(); void kraftsensor_init(); void do_kraftsensor(void); diff --git a/taenzer.c b/taenzer.c index 37875c3..da72467 100644 --- a/taenzer.c +++ b/taenzer.c @@ -68,12 +68,20 @@ void do_taenzer(){ #if PLC_MQTT_ENABLED send_settings(); #endif + if(taenzer_state.homed == 1 && read_Input(BTN_KRAFT_MINUS, LEVEL)) + { + kraftsensor_zero_offset = -(kraftsensor_value-kraftsensor_zero_offset); + } } if (read_Input(BTN_KRAFT_MINUS, RISING)) { taenzer_state.force_setpoint -= 1000; #if PLC_MQTT_ENABLED send_settings(); #endif + if(taenzer_state.homed == 1 && read_Input(BTN_KRAFT_PLUS, LEVEL)) + { + kraftsensor_zero_offset = -(kraftsensor_value-kraftsensor_zero_offset); + } } if (read_Input(BTN_TAENZER_START, RISING)) { taenzer_state.active = 1;