feat: 增加分段pid

This commit is contained in:
2024-03-28 04:24:59 +08:00
parent 99c582c53e
commit 8020561175
11 changed files with 278 additions and 73 deletions

View File

@@ -17,23 +17,37 @@ void jj_param_eeprom_init(void)
{
soft_iic_init(&eeprom_param, K24C02_DEV_ADDR, K24C02_SOFT_IIC_DELAY, K24C02_SCL_PIN, K24C02_SDA_PIN); // eeprom初始化
PARAM_REG(angle_Kp, &an_Kp, EFLOAT, 1, "an_P:"); // 注冊
PARAM_REG(angle_Ki, &an_Ki, EFLOAT, 1, "an_I:"); // 注冊
PARAM_REG(angle_Kd, &an_Kd, EFLOAT, 1, "an_D:");
PARAM_REG(angle_Kp0, &an_Kp0, EFLOAT, 1, "an_P0:"); // 注冊
PARAM_REG(angle_Ki0, &an_Ki0, EFLOAT, 1, "an_I0:"); // 注冊
PARAM_REG(angle_Kd0, &an_Kd0, EFLOAT, 1, "an_D0:");
PARAM_REG(gyro_Kp, &gy_Kp, EFLOAT, 1, "gy_P:"); // 注冊
PARAM_REG(gyro_Ki, &gy_Ki, EFLOAT, 1, "gy_I:"); // 注冊
PARAM_REG(gyro_Kd, &gy_Kd, EFLOAT, 1, "gy_D:");
PARAM_REG(gyro_Kp0, &gy_Kp0, EFLOAT, 1, "gy_P0:"); // 注冊
PARAM_REG(gyro_Ki0, &gy_Ki0, EFLOAT, 1, "gy_I0:"); // 注冊
PARAM_REG(gyro_Kd0, &gy_Kd0, EFLOAT, 1, "gy_D0:");
PARAM_REG(speed_Kp, &sp_Kp, EFLOAT, 1, "sp_P:"); // 注冊
PARAM_REG(speed_Ki, &sp_Ki, EFLOAT, 1, "sp_I:"); // 注冊
PARAM_REG(speed_Kd, &sp_Kd, EFLOAT, 1, "sp_D:");
PARAM_REG(pos_Kp, &po_Kp, EFLOAT, 1, "po_P:"); // 注冊
PARAM_REG(pos_Ki, &po_Ki, EFLOAT, 1, "po_I:"); // 注冊
PARAM_REG(pos_Kd, &po_Kd, EFLOAT, 1, "po_D:");
PARAM_REG(pos_Kp0, &po_Kp0, EFLOAT, 1, "po_P0:"); // 注冊
PARAM_REG(pos_Ki0, &po_Ki0, EFLOAT, 1, "po_I0:"); // 注冊
PARAM_REG(pos_Kd0, &po_Kd0, EFLOAT, 1, "po_D0:");
PARAM_REG(param_set_speed, &set_speed, EFLOAT, 1, "rate:");
PARAM_REG(param_set_speed0, &set_speed0, EFLOAT, 1, "rate0:");
PARAM_REG(angle_Kp1, &an_Kp1, EFLOAT, 1, "an_P1:"); // 注冊
PARAM_REG(angle_Ki1, &an_Ki1, EFLOAT, 1, "an_I1:"); // 注冊
PARAM_REG(angle_Kd1, &an_Kd1, EFLOAT, 1, "an_D1:");
PARAM_REG(gyro_Kp1, &gy_Kp1, EFLOAT, 1, "gy_P1:"); // 注冊
PARAM_REG(gyro_Ki1, &gy_Ki1, EFLOAT, 1, "gy_I1:"); // 注冊
PARAM_REG(gyro_Kd1, &gy_Kd1, EFLOAT, 1, "gy_D1:");
PARAM_REG(pos_Kp1, &po_Kp1, EFLOAT, 1, "po_P1:"); // 注冊
PARAM_REG(pos_Ki1, &po_Ki1, EFLOAT, 1, "po_I1:"); // 注冊
PARAM_REG(pos_Kd1, &po_Kd1, EFLOAT, 1, "po_D1:");
PARAM_REG(param_set_speed1, &set_speed1, EFLOAT, 1, "rate1:");
jj_param_read(); // 注冊
}
/**
@@ -42,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 - 1; i++) {
switch (Param_Data[i].type) {
case EFLOAT:
iic_buffer[i].f32 = *((float *)(Param_Data[i].p_data));
@@ -66,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 - 1; i++) {
eep_soft_iic_read_8bit_registers(&eeprom_param, (4 * i) >> 8, (4 * i), (uint8 *)&iic_buffer[i], 4);
switch (Param_Data[i].type) {