#ifndef _JJ_PARAM_H_ #define _JJ_PARAM_H_ #include "stdio.h" #include "ch32v30x.h" #include "zf_driver_soft_iic.h" /** * @brief 注册需调参数 * */ #define PARAM_REG(_data_tag_, _p_data_, _type_, _cmd_, _text_) \ Param_Data[_data_tag_].p_data = (void *)_p_data_; \ Param_Data[_data_tag_].type = _type_; \ Param_Data[_data_tag_].cmd = _cmd_; \ Param_Data[_data_tag_].text = _text_; \ //zf_assert(sizeof(_p_data_)<4); typedef enum { DATA_HEAD = -1, CA_PT_MAXLEN, CA_FIX_BINTHRESHOLD, CA_PIXPERMETER, CA_RESAMPLEDIST, CA_COMMON_AIM, CA_CROSS_AIM, DATA_IN_FLASH_NUM, DATA_NUM, } data_tag_t; typedef enum { EUINT32, EINT32, EFLOAT, } ENUM_TYPE; typedef union { uint32_t u32; int32_t s32; float f32; uint8_t u8[4]; } TYPE_UNION; typedef struct { void *p_data; ENUM_TYPE type; uint8_t cmd; char *text; } PARAM_INFO; extern soft_iic_info_struct eeprom_param; extern PARAM_INFO Param_Data[DATA_NUM]; extern TYPE_UNION iic_buffer[DATA_IN_FLASH_NUM]; void jj_param_eeprom_init(); void jj_param_read(); void jj_param_write(); #endif