mirror of https://github.com/rusefi/bldc.git
Balance app: dual adc switch (single combined switch) support
Support for combining both adc switches into a single one. Signed-off-by: Dado Mista <dadomista@gmail.com>
This commit is contained in:
parent
763f7598c7
commit
20796a66c1
|
@ -357,6 +357,7 @@ static bool check_faults(bool ignoreTimers){
|
|||
}
|
||||
|
||||
// Switch partially open and stopped
|
||||
if(!balance_conf.fault_is_dual_switch) {
|
||||
if((switch_state == HALF || switch_state == OFF) && abs_erpm < balance_conf.fault_adc_half_erpm){
|
||||
if(ST2MS(current_time - fault_switch_half_timer) > balance_conf.fault_delay_switch_half || ignoreTimers){
|
||||
state = FAULT_SWITCH_HALF;
|
||||
|
@ -365,6 +366,7 @@ static bool check_faults(bool ignoreTimers){
|
|||
} else {
|
||||
fault_switch_half_timer = current_time;
|
||||
}
|
||||
}
|
||||
|
||||
// Check pitch angle
|
||||
if(fabsf(pitch_angle) > balance_conf.fault_pitch){
|
||||
|
@ -675,6 +677,9 @@ static THD_FUNCTION(balance_thread, arg) {
|
|||
if(adc1 > balance_conf.fault_adc1 && adc2 > balance_conf.fault_adc2){
|
||||
switch_state = ON;
|
||||
}else if(adc1 > balance_conf.fault_adc1 || adc2 > balance_conf.fault_adc2){
|
||||
if (balance_conf.fault_is_dual_switch)
|
||||
switch_state = ON;
|
||||
else
|
||||
switch_state = HALF;
|
||||
}else{
|
||||
switch_state = OFF;
|
||||
|
|
|
@ -355,6 +355,9 @@
|
|||
#ifndef APPCONF_BALANCE_FAULT_ADC_HALF_ERPM
|
||||
#define APPCONF_BALANCE_FAULT_ADC_HALF_ERPM 1000
|
||||
#endif
|
||||
#ifndef APPCONF_BALANCE_FAULT_IS_DUAL_SWITCH
|
||||
#define APPCONF_BALANCE_FAULT_IS_DUAL_SWITCH false
|
||||
#endif
|
||||
#ifndef APPCONF_BALANCE_TILTBACK_DUTY_ANGLE
|
||||
#define APPCONF_BALANCE_TILTBACK_DUTY_ANGLE 10.0
|
||||
#endif
|
||||
|
|
|
@ -310,6 +310,7 @@ int32_t confgenerator_serialize_appconf(uint8_t *buffer, const app_configuration
|
|||
buffer_append_uint16(buffer, conf->app_balance_conf.fault_delay_switch_half, &ind);
|
||||
buffer_append_uint16(buffer, conf->app_balance_conf.fault_delay_switch_full, &ind);
|
||||
buffer_append_uint16(buffer, conf->app_balance_conf.fault_adc_half_erpm, &ind);
|
||||
buffer[ind++] = conf->app_balance_conf.fault_is_dual_switch;
|
||||
buffer_append_float16(buffer, conf->app_balance_conf.tiltback_duty_angle, 100, &ind);
|
||||
buffer_append_float16(buffer, conf->app_balance_conf.tiltback_duty_speed, 100, &ind);
|
||||
buffer_append_float16(buffer, conf->app_balance_conf.tiltback_duty, 1000, &ind);
|
||||
|
@ -703,6 +704,7 @@ bool confgenerator_deserialize_appconf(const uint8_t *buffer, app_configuration
|
|||
conf->app_balance_conf.fault_delay_switch_half = buffer_get_uint16(buffer, &ind);
|
||||
conf->app_balance_conf.fault_delay_switch_full = buffer_get_uint16(buffer, &ind);
|
||||
conf->app_balance_conf.fault_adc_half_erpm = buffer_get_uint16(buffer, &ind);
|
||||
conf->app_balance_conf.fault_is_dual_switch = buffer[ind++];
|
||||
conf->app_balance_conf.tiltback_duty_angle = buffer_get_float16(buffer, 100, &ind);
|
||||
conf->app_balance_conf.tiltback_duty_speed = buffer_get_float16(buffer, 100, &ind);
|
||||
conf->app_balance_conf.tiltback_duty = buffer_get_float16(buffer, 1000, &ind);
|
||||
|
@ -1080,6 +1082,7 @@ void confgenerator_set_defaults_appconf(app_configuration *conf) {
|
|||
conf->app_balance_conf.fault_delay_switch_half = APPCONF_BALANCE_FAULT_DELAY_SWITCH_HALF;
|
||||
conf->app_balance_conf.fault_delay_switch_full = APPCONF_BALANCE_FAULT_DELAY_SWITCH_FULL;
|
||||
conf->app_balance_conf.fault_adc_half_erpm = APPCONF_BALANCE_FAULT_ADC_HALF_ERPM;
|
||||
conf->app_balance_conf.fault_is_dual_switch = APPCONF_BALANCE_FAULT_IS_DUAL_SWITCH;
|
||||
conf->app_balance_conf.tiltback_duty_angle = APPCONF_BALANCE_TILTBACK_DUTY_ANGLE;
|
||||
conf->app_balance_conf.tiltback_duty_speed = APPCONF_BALANCE_TILTBACK_DUTY_SPEED;
|
||||
conf->app_balance_conf.tiltback_duty = APPCONF_BALANCE_TILTBACK_DUTY;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
// Constants
|
||||
#define MCCONF_SIGNATURE 3188187738
|
||||
#define APPCONF_SIGNATURE 992988844
|
||||
#define APPCONF_SIGNATURE 2551442059
|
||||
|
||||
// Functions
|
||||
int32_t confgenerator_serialize_mcconf(uint8_t *buffer, const mc_configuration *conf);
|
||||
|
|
|
@ -777,6 +777,7 @@ typedef struct {
|
|||
uint16_t fault_delay_switch_half;
|
||||
uint16_t fault_delay_switch_full;
|
||||
uint16_t fault_adc_half_erpm;
|
||||
bool fault_is_dual_switch;
|
||||
float tiltback_duty_angle;
|
||||
float tiltback_duty_speed;
|
||||
float tiltback_duty;
|
||||
|
|
Loading…
Reference in New Issue