#include "jj_param.h" #include "./page/page_ui_widget.h" #include "./page/page.h" #include "gl_tracking.h" #include "gl_state.h" #include "zf_common_headfile.h" PARAM_INFO Param_Data[DATA_NUM]; soft_iic_info_struct eeprom_param; TYPE_UNION iic_buffer[DATA_IN_FLASH_NUM]; TYPE_UNION tiny_frame_param[20]; uint32_t *addre[2]; /** * @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(aim_cross, &cross_aim, EFLOAT, 1, "cros:"); // 注冊 PARAM_REG(aim_cricle, &cricle_aim, EFLOAT, 1, "cric:"); // 注冊 PARAM_REG(aim_common, &common_aim, EFLOAT, 1, "comm:"); // 注冊 PARAM_REG(aim_barrier, &barrier_aim, EFLOAT, 1, "barr:"); PARAM_REG(offset_barrier, &barrier_offset, EFLOAT, 1, "offs:"); PARAM_REG(delta_x, &pure_angle, EFLOAT, 2, "far:"); PARAM_REG(delta_y, &dx_near, EFLOAT, 2, "near:"); jj_param_read(); // 注冊 } /** * @brief 参数写入 * */ void jj_param_write(void) { 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; } 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; 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)) = iic_buffer[i].f32; break; case EUINT32: *((uint32 *)(Param_Data[i].p_data)) = iic_buffer[i].u32; break; case EINT32: *((int32 *)(Param_Data[i].p_data)) = iic_buffer[i].s32; break; default: break; } system_delay_ms(10); } }