add active state for taenzer

master
Eggert Jung 4 years ago
parent b2721c0123
commit 690f4b308a

@ -21,6 +21,7 @@ taenzer_state_t taenzer_state = {
.homed = 0,
.pos = 0,
.force_setpoint = TAENZER_KRAFT_SETPOINT,
.active = 0
};
double pid(PID_vars *vars, double current_err) {
@ -71,9 +72,12 @@ void do_taenzer(){
send_info();
#endif
}
if (read_Input(BTN_TAENZER_START, RISING)) {
taenzer_state.active = 1;
}
/* Force regualtion */
if(kraftsensor_valid && taenzer_state.homed && taenzer_state.pos >= 0 && taenzer_state.pos < 500000){
if(kraftsensor_valid && taenzer_state.active && taenzer_state.homed && taenzer_state.pos >= 0 && taenzer_state.pos < 500000){
int16_t err = (kraftsensor_value - taenzer_state.force_setpoint);
double pid_out = pid(&regler, err);

@ -7,6 +7,7 @@ typedef volatile struct {
uint8_t homed;
uint32_t pos;
int16_t force_setpoint;
uint8_t active;
} taenzer_state_t;
extern taenzer_state_t taenzer_state;