82 lines
1.6 KiB
C
82 lines
1.6 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_;
|
||
|
||
typedef enum {
|
||
|
||
Page1_head = 0,
|
||
|
||
angle_Kp0 = Page1_head,
|
||
angle_Ki0,
|
||
angle_Kd0,
|
||
gyro_Kp0,
|
||
gyro_Ki0,
|
||
gyro_Kd0,
|
||
speed_Kp,
|
||
speed_Ki,
|
||
speed_Kd,
|
||
pos_Kp0,
|
||
pos_Ki0,
|
||
pos_Kd0,
|
||
param_set_speed0,
|
||
|
||
Page2_head,
|
||
angle_Kp1 = Page2_head,
|
||
angle_Ki1,
|
||
angle_Kd1,
|
||
gyro_Kp1,
|
||
gyro_Ki1,
|
||
gyro_Kd1,
|
||
pos_Kp1,
|
||
pos_Ki1,
|
||
pos_Kd1,
|
||
param_set_speed1,
|
||
|
||
DATA_IN_FLASH_NUM,
|
||
|
||
delta_x,
|
||
delta_y,
|
||
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; // 01:仅存储 00:仅显示 02:传输并显示
|
||
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];
|
||
extern TYPE_UNION temp_frame_param[20];
|
||
void jj_param_eeprom_init(void);
|
||
void jj_param_write(void);
|
||
void jj_param_read(void);
|
||
extern float data7;
|
||
#endif |