更新了手动模式dp2的三种控制逻辑,加入了存储指令的设计可以达到实时控制的效果,鸟叫声设置为默认开启方便演示
This commit is contained in:
@@ -28,6 +28,7 @@ typedef struct {
|
||||
uint8_t initialized;
|
||||
uint8_t active;
|
||||
uint8_t output_valid;
|
||||
uint8_t upper_only; /* 1=只输出上电机,下电机恒停 */
|
||||
uint8_t upper_phase;
|
||||
uint8_t lower_pattern;
|
||||
uint8_t lower_segment;
|
||||
@@ -270,8 +271,10 @@ static void app_mode5_process(uint32_t now_ms)
|
||||
app_mode5_select_lower_pattern(now_ms);
|
||||
}
|
||||
}
|
||||
app_mode_outputs_set(s_mode.upper_direction, s_mode.upper_speed,
|
||||
s_mode.lower_direction, MAGIC_BOX_HIGH_PERCENT);
|
||||
app_mode_outputs_set(s_mode.upper_direction, s_mode.upper_speed,
|
||||
s_mode.upper_only ? BSP_MOTOR_STOP : s_mode.lower_direction,
|
||||
s_mode.upper_only ? 0 : MAGIC_BOX_HIGH_PERCENT);
|
||||
|
||||
}
|
||||
|
||||
AppMode_Ret_t app_mode_init(void)
|
||||
@@ -297,12 +300,13 @@ AppMode_Ret_t app_mode_start(uint8_t mode)
|
||||
if (!s_mode.initialized) {
|
||||
return APP_MODE_ERR_NOT_INIT;
|
||||
}
|
||||
if (mode < 1 || mode > 5) {
|
||||
if (mode < 1 || mode > APP_MODE_UPPER_ONLY) { /* 放宽到 6 */
|
||||
app_mode_stop();
|
||||
return APP_MODE_ERR_PARAM;
|
||||
}
|
||||
|
||||
s_mode.active = mode;
|
||||
s_mode.upper_only = (mode == APP_MODE_UPPER_ONLY);
|
||||
s_mode.active = s_mode.upper_only ? 5 : mode; /* 内部仍按模式 5 跑 */
|
||||
app_mode_start_current(timer_get_ms());
|
||||
log_info("magic box mode %d start\n", mode);
|
||||
return APP_MODE_OK;
|
||||
@@ -311,6 +315,7 @@ AppMode_Ret_t app_mode_start(uint8_t mode)
|
||||
void app_mode_stop(void)
|
||||
{
|
||||
s_mode.active = 0;
|
||||
s_mode.upper_only = 0;
|
||||
s_mode.output_valid = 0;
|
||||
bsp_drive_stop();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user