Files
QDAC-firmware/app/jj_param.c
2024-03-03 16:20:25 +08:00

77 lines
2.6 KiB
C

#include "jj_param.h"
#include "./page/page_ui_widget.h"
#include "./page/page.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];
/**
* @brief 参数初始化注册
*
*/
void jj_param_eeprom_init()
{
soft_iic_init(&eeprom_param, K24C02_DEV_ADDR, K24C02_SOFT_IIC_DELAY, K24C02_SCL_PIN, K24C02_SDA_PIN); // eeprom初始化
//PARAM_REG(CA_PT_MAXLEN, &PT_MAXLEN, EFLOAT, 1, "PT_MAXLEN:"); // 注冊
// PARAM_REG(CA_FIX_BINTHRESHOLD, &FIX_BINTHRESHOLD, EFLOAT, 1, "FIX_BINTHRESHOLD:"); // 注冊
// PARAM_REG(CA_PIXPERMETER, &PIXPERMETER, EFLOAT, 1, "PIXPERMETER:"); // 注冊
// PARAM_REG(CA_RESAMPLEDIST, &RESAMPLEDIST, EFLOAT, 1, "RESAMPLEDIST:"); // 注冊
// PARAM_REG(CA_COMMON_AIM, &COMMON_AIM, EFLOAT, 1, "COMMON_AIM:"); // 注冊
// PARAM_REG(CA_CROSS_AIM, &CROSS_AIM, EFLOAT, 1, "CROSS_AIM:");
}
/**
* @brief 参数写入
*
*/
void jj_param_write()
{
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_t *)(Param_Data[i].p_data));
break;
case EINT32:
iic_buffer[i].s32 = *((int32_t *)(Param_Data[i].p_data));
break;
default:
break;
}
soft_iic_write_8bit_registers(&eeprom_param, 4 * i, (uint8_t *)&iic_buffer[i], 4);
system_delay_ms(10);
}
}
/**
* @brief 参数读出
*
*/
void jj_param_read()
{
for (uint8 i = 0; i < DATA_IN_FLASH_NUM; i++) {
soft_iic_read_8bit_registers(&eeprom_param, 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);
}
}