#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_; typedef enum { DATA_HEAD = -1, angle_Kp, angle_Ki, angle_Kd, imgax_Kp, imgax_Ki, imgax_Kd, 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; }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_update(); void jj_param_show(); #endif