From a9b488bc6e53612d1b22c9a6fc1d17a429b50fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=95=E6=98=8E=E6=B1=9F?= <246462502@qq.com> Date: Thu, 28 Mar 2024 19:55:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=86=E6=AE=B5pid=E7=9A=84bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jj_blueteeth.c | 6 ++-- app/jj_blueteeth.h | 4 +-- app/jj_param.c | 4 +-- app/jj_param.h | 1 + app/page/page_param_pid0.c | 13 ++++----- app/page/page_param_pid1.c | 59 +++++++++++++++++++------------------- 6 files changed, 43 insertions(+), 44 deletions(-) diff --git a/app/jj_blueteeth.c b/app/jj_blueteeth.c index 85d59ea..8ebb6a6 100644 --- a/app/jj_blueteeth.c +++ b/app/jj_blueteeth.c @@ -2,9 +2,9 @@ #include "jj_motion.h" #include "by_fan_control.h" bool bt_rx_flag = false; -uint8 bt_buffer; // 接收字符存入 -uint32_t bt_run_flag = 0; -uint8_t bt_fly_flag = 0; +uint8_t bt_buffer; // 接收字符存入 +uint8_t bt_run_flag = 0; +uint8_t bt_fly_flag = 0; uint32_t bt_run = 0; uint32_t bt_fly = 500; enum bt_order { diff --git a/app/jj_blueteeth.h b/app/jj_blueteeth.h index 8c4d861..fe051a0 100644 --- a/app/jj_blueteeth.h +++ b/app/jj_blueteeth.h @@ -10,8 +10,8 @@ #define BT_UART_RX_PIN UART8_MAP0_RX_C5 extern bool bt_rx_flag; -extern uint8 bt_buffer; // 接收字符存入 -extern uint32_t bt_run_flag; +extern uint8_t bt_buffer; // 接收字符存入 +extern uint8_t bt_run_flag; extern uint8_t bt_fly_flag; extern uint32_t bt_run; extern uint32_t bt_fly; diff --git a/app/jj_param.c b/app/jj_param.c index c03f508..35ec678 100644 --- a/app/jj_param.c +++ b/app/jj_param.c @@ -56,7 +56,7 @@ void jj_param_eeprom_init(void) */ void jj_param_write(void) { - for (uint8 i = 0; i < DATA_IN_FLASH_NUM - 1; i++) { + for (uint8 i = 0; i < DATA_IN_FLASH_NUM ; i++) { switch (Param_Data[i].type) { case EFLOAT: iic_buffer[i].f32 = *((float *)(Param_Data[i].p_data)); @@ -80,7 +80,7 @@ void jj_param_write(void) */ void jj_param_read(void) { - for (uint8 i = 0; i < DATA_IN_FLASH_NUM - 1; i++) { + for (uint8 i = 0; i < DATA_IN_FLASH_NUM ; i++) { eep_soft_iic_read_8bit_registers(&eeprom_param, (4 * i) >> 8, (4 * i), (uint8 *)&iic_buffer[i], 4); switch (Param_Data[i].type) { diff --git a/app/jj_param.h b/app/jj_param.h index 525b6d2..7882aa3 100644 --- a/app/jj_param.h +++ b/app/jj_param.h @@ -43,6 +43,7 @@ typedef enum { pos_Ki1, pos_Kd1, param_set_speed1, + DATA_IN_FLASH_NUM, delta_x, diff --git a/app/page/page_param_pid0.c b/app/page/page_param_pid0.c index b5ac9e0..3582974 100644 --- a/app/page/page_param_pid0.c +++ b/app/page/page_param_pid0.c @@ -7,8 +7,8 @@ #define LINE_HEAD 0 #define LINE_END Page2_head - 1 static char Text[] = "Param_pid0"; -static int event_flag = 0; -static int index_power = 0; +static int event_flag = 0; +static int index_power = 0; static int8_t Curser = LINE_HEAD; // 定义光标位置 static int8_t Curser_Last = LINE_HEAD; // 定义光标位置 static void jj_param_show(); @@ -26,15 +26,14 @@ static void Setup() { ips200_clear(); Print_Curser(Curser, Curser_Last, RGB565_PURPLE); - for (int16 i = LINE_HEAD; i < LINE_END; i++) { + for (int16 i = 0; i <= LINE_END; i++) { ips200_show_string(0, i * 18 + 2, Param_Data[i].text); if (Param_Data[i].type == EINT32) ips200_show_int(50, i * 18 + 2, *((int32 *)(Param_Data[i].p_data)), 5); else if (Param_Data[i].type == EFLOAT) ips200_show_float(50, i * 18 + 2, *((float *)(Param_Data[i].p_data)), 4, 5); } - ips200_show_int(100, 2, index_power, 5); - + ips200_show_int(100, 2, index_power, 5); } /** @@ -89,7 +88,7 @@ static void Event(page_event event) } else if (1 == event_flag) { if (page_event_forward == event) { if (Param_Data[Curser].type == EFLOAT) { - *((float *)(Param_Data[Curser].p_data)) += powf(10.0f,(float)index_power); + *((float *)(Param_Data[Curser].p_data)) += powf(10.0f, (float)index_power); } else if (Param_Data[Curser].type == EINT32) { *((int32 *)(Param_Data[Curser].p_data)) += 1; } else if (Param_Data[Curser].type == EUINT32) { @@ -97,7 +96,7 @@ static void Event(page_event event) } } else if (page_event_backward == event) { if (Param_Data[Curser].type == EFLOAT) { - *((float *)(Param_Data[Curser].p_data)) -=powf(10.0f,(float)index_power); + *((float *)(Param_Data[Curser].p_data)) -= powf(10.0f, (float)index_power); } else if (Param_Data[Curser].type == EINT32) { *((int32 *)(Param_Data[Curser].p_data)) -= 1; } else if (Param_Data[Curser].type == EUINT32) { diff --git a/app/page/page_param_pid1.c b/app/page/page_param_pid1.c index 013e259..786a0c4 100644 --- a/app/page/page_param_pid1.c +++ b/app/page/page_param_pid1.c @@ -4,11 +4,11 @@ #include "page.h" #include -#define LINE_HEAD Page2_head -#define LINE_END DATA_IN_FLASH_NUM +#define LINE_HEAD 0 +#define LINE_END DATA_IN_FLASH_NUM - 1 - Page2_head static char Text[] = "Param_pid1"; -static int event_flag = 0; -static int index_power = 0; +static int event_flag = 0; +static int index_power = 0; static int8_t Curser = LINE_HEAD; // 定义光标位置 static int8_t Curser_Last = LINE_HEAD; // 定义光标位置 static void jj_param_show(); @@ -26,15 +26,14 @@ static void Setup() { ips200_clear(); Print_Curser(Curser, Curser_Last, RGB565_PURPLE); - for (int16 i = 0; i <= DATA_IN_FLASH_NUM - Page2_head; i++) { - ips200_show_string(0, i * 18 + 2, Param_Data[i+Page2_head].text); - if (Param_Data[i].type == EINT32) - ips200_show_int(50, i * 18 + 2, *((int32 *)(Param_Data[i+Page2_head].p_data)), 5); - else if (Param_Data[i].type == EFLOAT) - ips200_show_float(50, i * 18 + 2, *((float *)(Param_Data[i+Page2_head].p_data)), 4, 5); + for (int16 i = 0; i < 10; i++) { + ips200_show_string(0, i * 18 + 2, Param_Data[i + 13].text); + if (Param_Data[i + 13].type == EINT32) + ips200_show_int(50, i * 18 + 2, *((int32 *)(Param_Data[i + 13].p_data)), 5); + else if (Param_Data[i + 13].type == EFLOAT) + ips200_show_float(50, i * 18 + 2, *((float *)(Param_Data[i + 13].p_data)), 4, 5); } - ips200_show_int(100, 2, index_power, 5); - + ips200_show_int(100, 2, index_power, 5); } /** @@ -88,20 +87,20 @@ static void Event(page_event event) Print_Curser(Curser, Curser_Last, RGB565_PURPLE); } else if (1 == event_flag) { if (page_event_forward == event) { - if (Param_Data[Curser].type == EFLOAT) { - *((float *)(Param_Data[Curser].p_data)) += powf(10.0f,(float)index_power); - } else if (Param_Data[Curser].type == EINT32) { - *((int32 *)(Param_Data[Curser].p_data)) += 1; - } else if (Param_Data[Curser].type == EUINT32) { - *((uint32 *)(Param_Data[Curser].p_data)) += 1; + if (Param_Data[Curser + 13].type == EFLOAT) { + *((float *)(Param_Data[Curser + 13].p_data)) += powf(10.0f, (float)index_power); + } else if (Param_Data[Curser + 13].type == EINT32) { + *((int32 *)(Param_Data[Curser + 13].p_data)) += 1; + } else if (Param_Data[Curser + 13].type == EUINT32) { + *((uint32 *)(Param_Data[Curser + Page2_head].p_data)) += 1; } } else if (page_event_backward == event) { - if (Param_Data[Curser].type == EFLOAT) { - *((float *)(Param_Data[Curser].p_data)) -=powf(10.0f,(float)index_power); - } else if (Param_Data[Curser].type == EINT32) { - *((int32 *)(Param_Data[Curser].p_data)) -= 1; - } else if (Param_Data[Curser].type == EUINT32) { - *((uint32 *)(Param_Data[Curser].p_data)) -= 1; + if (Param_Data[Curser + Page2_head].type == EFLOAT) { + *((float *)(Param_Data[Curser + Page2_head].p_data)) -= powf(10.0f, (float)index_power); + } else if (Param_Data[Curser + Page2_head].type == EINT32) { + *((int32 *)(Param_Data[Curser + Page2_head].p_data)) -= 1; + } else if (Param_Data[Curser + Page2_head].type == EUINT32) { + *((uint32 *)(Param_Data[Curser + Page2_head].p_data)) -= 1; } } else if (page_event_press_short == event) { index_power++; @@ -118,12 +117,12 @@ static void Event(page_event event) } static void jj_param_show() { - if (EINT32 == Param_Data[Curser+Page2_head].type) - ips200_show_int(50, Curser * 18 + 2, *((int32 *)(Param_Data[Curser+Page2_head].p_data)), 5); - else if (EUINT32 == Param_Data[Curser+Page2_head].type) - ips200_show_uint(50, Curser * 18 + 2, *((int32 *)(Param_Data[Curser+Page2_head].p_data)), 5); - else if (EFLOAT == Param_Data[Curser+Page2_head].type) - ips200_show_float(50, Curser * 18 + 2, *((float *)(Param_Data[Curser+Page2_head].p_data)), 4, 5); + if (EINT32 == Param_Data[Curser + 13].type) + ips200_show_int(50, Curser * 18 + 2, *((int32 *)(Param_Data[Curser + 13].p_data)), 5); + else if (EUINT32 == Param_Data[Curser + 13].type) + ips200_show_uint(50, Curser * 18 + 2, *((int32 *)(Param_Data[Curser + 13].p_data)), 5); + else if (EFLOAT == Param_Data[Curser + 13].type) + ips200_show_float(50, Curser * 18 + 2, *((float *)(Param_Data[Curser + 13].p_data)), 4, 5); } /** * @brief 页面注册函数