sggt/App/MUX_SIGNAL/mux_signal.h

106 lines
2.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _MUX_SIGNAL_H_
#define _MUX_SIGNAL_H_
#include "data_type_def.h"
#include "gpio.h"
#include "dac.h"
#include <SIG24130.h>
#include "dac8552.h"
#include "dac7811.h"
#include "ads1220.h"
#include "apps_gather.h"
#define PWM_MUX 0
#define PWM_HART 1
#define CALIBRATE_VOL_V_OUT_POINTS 11
#define CALIBRATE_VOL_MV_OUT_POINTS 11
#define CALIBRATE_CUR_MA_OUT_POINTS 11
#define CALIBRATE_RES_OHM_OUT_POINTS 11
#define CALIBRATE_CUR_MA_IN_POINTS 11
#define CALIBRATE_VOL_V_IN_POINTS 11
#define CALIBRATE_VOL_MV_IN_POINTS 11
#define CALIBRATE_RES_OHM_IN_POINTS 11
typedef enum
{
CH0_OUT_VOL_V = 0,
CH1_OUT_VOL_MV = 1,
CH2_OUT_CUR = 2,
CH3_OUT_FRE = 3,
CH4_OUT_RES = 4,
CH5_EMPTY = 5,
CH6_IN_VOL = 6,
CH7_IN_MVOL = 7,
CH8_IN_CUR = 8,
CH9_IN_FRE = 9,
CH10_IN_RTD = 10,
CH11_IN_TC = 11,
CH12_IN_HART = 12,
CHX_IN_MAX = 13,
} CHANNEL;
typedef enum
{
CAL_FLAG_CUR_MA_OUT = 0,
CAL_FLAG_VOUT_V_OUT,
CAL_FLAG_VOUT_MV_OUT,
CAL_FLAG_RES_OHM_OUT,
CAL_FLAG_CUR_MA_IN,
CAL_FLAG_VOUT_V_IN,
CAL_FLAG_VOUT_MV_IN,
CAL_FLAG_RES_OHM_IN,
CAL_FLAG_NONE
}CALIBRATE_FLAGS;
typedef struct
{
uint8_t capture_cnt;
uint8_t over_cnt;
float32 high_time; // 高电平时间
float32 duty_time; // 周期
float32 freq;
float32 capture_buf[3];
} st_freq_signal;
typedef struct
{
CHANNEL channel;
float32 data_sv;
float32 data_pv;
float32 pwr_delay;
float32 sv_calibrated;
float32 pv_calibrated;
} st_mux_signal;
typedef struct
{
//信号输出
float32 cali_vol_V_out[CALIBRATE_VOL_V_OUT_POINTS];
float32 cali_vol_mV_out[CALIBRATE_VOL_MV_OUT_POINTS];
float32 cali_cur_mA_out[CALIBRATE_CUR_MA_OUT_POINTS];
float32 cali_res_ohm_out[CALIBRATE_RES_OHM_OUT_POINTS];
//信号输入
float32 cali_vol_V_in[CALIBRATE_VOL_V_IN_POINTS];
float32 cali_vol_mV_in[CALIBRATE_VOL_MV_IN_POINTS];
float32 cali_cur_mA_in[CALIBRATE_CUR_MA_IN_POINTS];
float32 cali_res_ohm_in[CALIBRATE_RES_OHM_IN_POINTS];
}CALIBRATE_PARAGRAMS;
extern st_freq_signal freq_signal;
extern st_mux_signal mux_signal;
extern CALIBRATE_PARAGRAMS cali_paras;
void pwr_cosume(BOOL rst, uint32_t ms);
void mux_signal_switch(st_mux_signal *mux_signal);
void frequence_output(uint32_t freq, uint8_t pulse, uint8_t pwm_select);
//加载校准所需的参数EEPROM读取
void load_calibrate_data(void);
void deal_calibrate_affair(void);
#endif