Skip to content

Commit b727f5c

Browse files
authored
Merge pull request #98 from leon927/bug-fixes
Improvements and bug fixes
2 parents 25af00d + f89ba3a commit b727f5c

File tree

14 files changed

+601
-771
lines changed

14 files changed

+601
-771
lines changed

src/controller/ebike_app.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -446,18 +446,12 @@ static void uart_receive_package(void)
446446

447447
case 3:
448448
// type of motor (36 volt, 48 volt or some experimental type)
449-
m_configuration_variables.ui8_motor_type = (ui8_rx_buffer [5] & 3);
449+
m_configuration_variables.ui8_motor_type = ui8_rx_buffer [5];
450450

451-
// motor assistance without pedal rotation enable/disable when startup
452-
m_configuration_variables.ui8_motor_assistance_startup_without_pedal_rotation = (ui8_rx_buffer [5] & 4) >> 2;
453-
454-
// motor temperature limit function enable/disable
455-
m_configuration_variables.ui8_temperature_limit_feature_enabled = (ui8_rx_buffer [5] & 8) >> 3;
456-
457-
// startup motor boost state
451+
// startup motor power boost state
458452
m_configuration_variables.ui8_startup_motor_power_boost_state = (ui8_rx_buffer [6] & 1);
459453

460-
// startup power boost max power limit
454+
// startup power boost max power limit enabled
461455
m_configuration_variables.ui8_startup_motor_power_boost_limit_to_max_power = (ui8_rx_buffer [6] & 2) >> 1;
462456
break;
463457

@@ -474,7 +468,7 @@ static void uart_receive_package(void)
474468
m_configuration_variables.ui8_startup_motor_power_boost_fade_time = ui8_rx_buffer [5];
475469

476470
// startup motor boost enabled
477-
m_configuration_variables.ui8_startup_motor_power_boost_feature_enabled = (ui8_rx_buffer [6] & 1);
471+
m_configuration_variables.ui8_startup_motor_power_boost_feature_enabled = ui8_rx_buffer [6];
478472
break;
479473

480474
case 6:
@@ -521,6 +515,14 @@ static void uart_receive_package(void)
521515
ui16_received_target_wheel_speed_x10 = (uint16_t) (ui8_rx_buffer [6] * 10);
522516
break;
523517

518+
case 8:
519+
// motor temperature limit function or throttle
520+
m_configuration_variables.ui8_temperature_limit_feature_enabled = ui8_rx_buffer [5];
521+
522+
// motor assistance without pedal rotation enable/disable when startup
523+
m_configuration_variables.ui8_motor_assistance_startup_without_pedal_rotation = ui8_rx_buffer [6];
524+
break;
525+
524526
default:
525527
// nothing, should display error code
526528
break;

src/controller/ebike_app.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ typedef struct _configuration_variables
2828
uint16_t ui16_wheel_perimeter;
2929
uint8_t ui8_lights;
3030
uint8_t ui8_walk_assist;
31-
uint8_t ui8_offroad_mode;
3231
uint8_t ui8_wheel_max_speed;
3332
uint8_t ui8_motor_type;
3433
uint8_t ui8_motor_assistance_startup_without_pedal_rotation;
@@ -46,18 +45,12 @@ typedef struct _configuration_variables
4645
uint8_t ui8_temperature_current_limiting_value;
4746
uint16_t ui16_motor_temperature_x2;
4847
uint8_t ui8_motor_temperature;
49-
uint8_t ui8_offroad_feature_enabled;
50-
uint8_t ui8_offroad_enabled_on_startup;
51-
uint8_t ui8_offroad_speed_limit;
52-
uint8_t ui8_offroad_power_limit_enabled;
53-
uint8_t ui8_offroad_power_limit_div25;
5448
uint8_t ui8_ramp_up_amps_per_second_x10;
5549
} struct_configuration_variables;
5650

5751

5852

5953
extern volatile uint16_t ui16_current_ramp_up_inverse_step;
60-
6154
extern volatile uint8_t ui8_g_adc_torque_sensor_min_value;
6255
extern volatile uint8_t ui8_g_adc_torque_sensor_max_value;
6356
extern volatile uint8_t ui8_adc_battery_current_offset;

src/controller/eeprom.c

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ static uint8_t array_default_values [EEPROM_BYTES_STORED] = {
2424
DEFAULT_VALUE_WHEEL_PERIMETER_1, // 8 + EEPROM_BASE_ADDRESS
2525
DEFAULT_VALUE_WHEEL_MAX_SPEED, // 9 + EEPROM_BASE_ADDRESS
2626
DEFAULT_VALUE_CONFIG_1, // 10 + EEPROM_BASE_ADDRESS
27-
DEFAULT_VALUE_OFFROAD_CONFIG, // 11 + EEPROM_BASE_ADDRESS
28-
DEFAULT_VALUE_OFFROAD_SPEED_LIMIT, // 12 + EEPROM_BASE_ADDRESS
29-
DEFAULT_VALUE_OFFROAD_POWER_LIMIT_DIV25, // 13 + EEPROM_BASE_ADDRESS
30-
DEFAULT_VALUE_RAMP_UP_AMPS_PER_SECOND_X10 // 14 + EEPROM_BASE_ADDRESS
27+
DEFAULT_VALUE_RAMP_UP_AMPS_PER_SECOND_X10 // 11 + EEPROM_BASE_ADDRESS
3128
};
3229

3330

@@ -91,7 +88,6 @@ static void eeprom_read_values_to_variables (void)
9188
ui8_temp = FLASH_ReadByte (ADDRESS_CONFIG_0);
9289
p_configuration_variables->ui8_lights = ui8_temp & 1 ? 1 : 0;
9390
p_configuration_variables->ui8_walk_assist = ui8_temp & (1 << 1) ? 1 : 0;
94-
p_configuration_variables->ui8_offroad_mode = ui8_temp & (1 << 2) ? 1 : 0;
9591

9692
p_configuration_variables->ui8_battery_max_current = FLASH_ReadByte (ADDRESS_BATTERY_MAX_CURRENT);
9793
p_configuration_variables->ui8_motor_power_x10 = FLASH_ReadByte (ADDRESS_MOTOR_POWER_X10);
@@ -113,14 +109,6 @@ static void eeprom_read_values_to_variables (void)
113109
ui8_temp = FLASH_ReadByte (ADDRESS_CONFIG_1);
114110
p_configuration_variables->ui8_motor_type = ui8_temp & 3;
115111
p_configuration_variables->ui8_motor_assistance_startup_without_pedal_rotation = (ui8_temp & 4) >> 2;
116-
117-
ui8_temp = FLASH_ReadByte (ADDRESS_OFFROAD_CONFIG);
118-
p_configuration_variables->ui8_offroad_feature_enabled = ui8_temp & 1;
119-
p_configuration_variables->ui8_offroad_enabled_on_startup = ui8_temp & (1 << 1);
120-
p_configuration_variables->ui8_offroad_power_limit_enabled = ui8_temp & (1 << 2);
121-
122-
p_configuration_variables->ui8_offroad_speed_limit = FLASH_ReadByte (ADDRESS_OFFROAD_SPEED_LIMIT);
123-
p_configuration_variables->ui8_offroad_power_limit_div25 = FLASH_ReadByte (ADDRESS_OFFROAD_POWER_LIMIT_DIV25);
124112

125113
// ramp up, amps per second
126114
p_configuration_variables->ui8_ramp_up_amps_per_second_x10 = FLASH_ReadByte (ADDRESS_RAMP_UP_AMPS_PER_SECOND_X10);
@@ -142,9 +130,8 @@ static void variables_to_array (uint8_t *ui8_array)
142130

143131
ui8_array [0] = KEY;
144132
ui8_array [1] = p_configuration_variables->ui8_assist_level_factor_x10;
145-
ui8_array [2] = (p_configuration_variables->ui8_lights & 1) |
146-
((p_configuration_variables->ui8_walk_assist & 1) << 1) |
147-
((p_configuration_variables->ui8_offroad_mode & 1) << 2);
133+
ui8_array [2] = (p_configuration_variables->ui8_lights & 1) |
134+
((p_configuration_variables->ui8_walk_assist & 1) << 1);
148135
ui8_array [3] = p_configuration_variables->ui8_battery_max_current;
149136
ui8_array [4] = p_configuration_variables->ui8_motor_power_x10;
150137
ui8_array [5] = p_configuration_variables->ui16_battery_low_voltage_cut_off_x10 & 255;
@@ -154,12 +141,7 @@ static void variables_to_array (uint8_t *ui8_array)
154141
ui8_array [9] = p_configuration_variables->ui8_wheel_max_speed;
155142
ui8_array [10] = (p_configuration_variables->ui8_motor_type & 3) |
156143
((p_configuration_variables->ui8_motor_assistance_startup_without_pedal_rotation & 1) << 2);
157-
ui8_array [11] = (p_configuration_variables->ui8_offroad_feature_enabled & 1) |
158-
((p_configuration_variables->ui8_offroad_enabled_on_startup & 1) << 1) |
159-
((p_configuration_variables->ui8_offroad_power_limit_enabled & 1) << 2);
160-
ui8_array [12] = p_configuration_variables->ui8_offroad_speed_limit;
161-
ui8_array [13] = p_configuration_variables->ui8_offroad_power_limit_div25;
162-
ui8_array [14] = p_configuration_variables->ui8_ramp_up_amps_per_second_x10;
144+
ui8_array [11] = p_configuration_variables->ui8_ramp_up_amps_per_second_x10;
163145
}
164146

165147

src/controller/eeprom.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@
2828
#define ADDRESS_WHEEL_PERIMETER_1 8 + EEPROM_BASE_ADDRESS
2929
#define ADDRESS_WHEEL_MAX_SPEED 9 + EEPROM_BASE_ADDRESS
3030
#define ADDRESS_CONFIG_1 10 + EEPROM_BASE_ADDRESS
31-
#define ADDRESS_OFFROAD_CONFIG 11 + EEPROM_BASE_ADDRESS
32-
#define ADDRESS_OFFROAD_SPEED_LIMIT 12 + EEPROM_BASE_ADDRESS
33-
#define ADDRESS_OFFROAD_POWER_LIMIT_DIV25 13 + EEPROM_BASE_ADDRESS
34-
#define ADDRESS_RAMP_UP_AMPS_PER_SECOND_X10 14 + EEPROM_BASE_ADDRESS
35-
#define EEPROM_BYTES_STORED 15
31+
#define ADDRESS_RAMP_UP_AMPS_PER_SECOND_X10 11 + EEPROM_BASE_ADDRESS
32+
#define EEPROM_BYTES_STORED 12
3633

3734

3835

src/controller/main.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,6 @@
128128
#define DEFAULT_VALUE_WHEEL_PERIMETER_1 8
129129
#define DEFAULT_VALUE_WHEEL_MAX_SPEED 50 // 50 km/h
130130
#define DEFAULT_VALUE_CONFIG_1 0
131-
#define DEFAULT_VALUE_OFFROAD_CONFIG 0
132-
#define DEFAULT_VALUE_OFFROAD_SPEED_LIMIT 25 // 25 km/h
133-
#define DEFAULT_VALUE_OFFROAD_POWER_LIMIT_DIV25 10 // 10 * 25 = 250 W
134131

135132

136133

0 commit comments

Comments
 (0)