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

59 lines
1.2 KiB
C

#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