feat: 完成控制代码编写
This commit is contained in:
@@ -3,23 +3,71 @@
|
||||
#include "./page/page.h"
|
||||
#include "zf_common_headfile.h"
|
||||
#include "jj_motion.h"
|
||||
|
||||
PARAM_INFO Param_Data[DATA_NUM];
|
||||
soft_iic_info_struct eeprom_param;
|
||||
TYPE_UNION iic_buffer[DATA_IN_FLASH_NUM];
|
||||
|
||||
void jj_param_eeprom_init()
|
||||
/**
|
||||
* @brief 参数初始化注册
|
||||
*
|
||||
*/
|
||||
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(imgax_Kp, &im_Kp, EFLOAT, 1, "im_P"); // 注冊
|
||||
PARAM_REG(imgax_Ki, &im_Ki, EFLOAT, 1, "im_I"); // 注冊
|
||||
PARAM_REG(imgax_Kd, &im_Kd, EFLOAT, 1, "im_D"); // 注冊
|
||||
|
||||
for (uint8 i = 0; i < DATA_IN_FLASH_NUM; i++) {
|
||||
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:");
|
||||
|
||||
soft_iic_read_8bit_registers(&eeprom_param, 4 * i, (uint8 *)&iic_buffer[i], 4);
|
||||
PARAM_REG(gyro_Kp, &gy_Kp, EFLOAT, 1, "im_P:"); // 注冊
|
||||
PARAM_REG(gyro_Ki, &gy_Ki, EFLOAT, 1, "im_I:"); // 注冊
|
||||
PARAM_REG(gyro_Kd, &gy_Kd, EFLOAT, 1, "im_D:");
|
||||
|
||||
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(param_set_speed, &set_speed, EFLOAT, 1, "rate:");
|
||||
jj_param_read(); // 注冊
|
||||
}
|
||||
/**
|
||||
* @brief 参数写入
|
||||
*
|
||||
*/
|
||||
void jj_param_write(void)
|
||||
{
|
||||
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));
|
||||
break;
|
||||
case EUINT32:
|
||||
iic_buffer[i].u32 = *((uint32 *)(Param_Data[i].p_data));
|
||||
break;
|
||||
case EINT32:
|
||||
iic_buffer[i].s32 = *((int32 *)(Param_Data[i].p_data));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
eep_soft_iic_write_8bit_registers(&eeprom_param, (4 * i) >> 8, (4 * i), (uint8 *)&iic_buffer[i], 4);
|
||||
system_delay_ms(10);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @brief 参数读出
|
||||
*
|
||||
*/
|
||||
void jj_param_read(void)
|
||||
{
|
||||
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) {
|
||||
case EFLOAT:
|
||||
*((float *)(Param_Data[i].p_data)) =
|
||||
@@ -39,27 +87,3 @@ void jj_param_eeprom_init()
|
||||
system_delay_ms(10);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @brief 参数更新
|
||||
*
|
||||
*/
|
||||
void jj_param_update()
|
||||
{
|
||||
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));
|
||||
break;
|
||||
case EUINT32:
|
||||
iic_buffer[i].u32 = *((uint32 *)(Param_Data[i].p_data));
|
||||
break;
|
||||
case EINT32:
|
||||
iic_buffer[i].s32 = *((int32 *)(Param_Data[i].p_data));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
soft_iic_write_8bit_registers(&eeprom_param, 4 * i, (uint8 *)&iic_buffer[i], 4);
|
||||
system_delay_ms(10);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user