添加调试寄存器,可将将波形最大值发回
This commit is contained in:
parent
3d9e0e3b07
commit
f2ffc61bf6
|
@ -155,6 +155,18 @@ typedef struct _error_log{
|
|||
extern error_log g_error_log;
|
||||
#pragma pack(pop)
|
||||
|
||||
#define MAX_VALUES 50
|
||||
typedef struct {
|
||||
uint16_t values[MAX_VALUES];
|
||||
uint16_t count;
|
||||
uint16_t currentIndex;
|
||||
uint16_t ave;
|
||||
} AverageCalculator;
|
||||
extern AverageCalculator Test1;
|
||||
extern AverageCalculator Test2;
|
||||
extern AverageCalculator Test3;
|
||||
extern AverageCalculator Test4;
|
||||
|
||||
// 切换通道
|
||||
void change_channel(uint32_t channel);
|
||||
|
||||
|
|
|
@ -71,6 +71,10 @@ typedef enum
|
|||
FRT_REGISTER_LINEAR_POINT_Y_4 = 48, /* 线性插值校准点4 */
|
||||
FRT_REGISTER_LINEAR_POINT_Y_5 = 49, /* 线性插值校准点5 */
|
||||
FRT_REGISTER_LINEAR_ENABLE = 50, /* 线性插值使能 */
|
||||
FRT_REGISTER_TEST1 = 51, /* 测试寄存器 */
|
||||
FRT_REGISTER_TEST2 = 52, /* 测试寄存器 */
|
||||
FRT_REGISTER_TEST3 = 53, /* 测试寄存器 */
|
||||
FRT_REGISTER_TEST4 = 54, /* 测试寄存器 */
|
||||
}FRT_MsgRegister;
|
||||
|
||||
#pragma pack(push,1)
|
||||
|
|
|
@ -22,8 +22,28 @@ arm_rfft_fast_instance_f32 s;
|
|||
float32_t rfft_float_buf[FFT_DATA_LEN];
|
||||
// fft结果
|
||||
float32_t fft_out_f32[ADC_VAL_LEN] = {0};
|
||||
//
|
||||
|
||||
// 波形最大点
|
||||
void addValue(AverageCalculator *calc, uint16_t value) {
|
||||
calc->values[calc->currentIndex] = value;
|
||||
calc->currentIndex = (calc->currentIndex + 1) % MAX_VALUES;
|
||||
if (calc->count < MAX_VALUES) {
|
||||
calc->count++;
|
||||
}
|
||||
uint32_t sum = 0;
|
||||
for (int i = 0; i < calc->count; i++) {
|
||||
sum += calc->values[i];
|
||||
}
|
||||
calc->ave = sum / calc->count;
|
||||
}
|
||||
AverageCalculator Test1;
|
||||
AverageCalculator Test2;
|
||||
AverageCalculator Test3;
|
||||
AverageCalculator Test4;
|
||||
uint16_t wave_max_val1;
|
||||
uint16_t wave_max_val2;
|
||||
uint16_t wave_max_val3;
|
||||
uint16_t wave_max_val4;
|
||||
|
||||
int16_t adc_val[ADC_VAL_LEN];
|
||||
int16_t adc_val1[ADC_VAL_LEN];
|
||||
|
@ -101,7 +121,8 @@ float32_t RSSI;
|
|||
float32_t buf[ADC_VAL_LEN];
|
||||
float32_t buf2[ADC_VAL_LEN];
|
||||
/*****************滤波器BUFF**********/
|
||||
float32_t cal_tof(q15_t* x,uint32_t len)
|
||||
float32_t cal_tof(q15_t* x,uint32_t len, int16_t *maxVal)
|
||||
// float32_t cal_tof(q15_t* x,uint32_t len)
|
||||
{
|
||||
q15_t max_val,dc_offset;
|
||||
float32_t echo_p = 0,echo_dt = 0;
|
||||
|
@ -132,7 +153,8 @@ float32_t cal_tof(q15_t* x,uint32_t len)
|
|||
// arm_float_to_q15(buf2,firFilterTestOutData,len);
|
||||
for(i= 0 ;i<len;i++ )
|
||||
{
|
||||
x[i] = (int16_t)(buf2[i]*2.5f);
|
||||
// x[i] = (int16_t)(buf2[i]*2.5f);
|
||||
x[i] = (int16_t)(buf2[i]);
|
||||
}
|
||||
/*****************滤波器**********/
|
||||
|
||||
|
@ -163,9 +185,11 @@ float32_t cal_tof(q15_t* x,uint32_t len)
|
|||
RSSI = rfft_float_buf[fft_200khz_pos-2]+rfft_float_buf[fft_200khz_pos-1]+ rfft_float_buf[fft_200khz_pos]+rfft_float_buf[fft_200khz_pos+1]+rfft_float_buf[fft_200khz_pos+2];
|
||||
// 如果RSSI小于
|
||||
// 可变RSSI范围
|
||||
if(RSSI < ((float)g_stConfigInfo.RSSI_range/100.0))
|
||||
// if(RSSI<0.2)
|
||||
if(RSSI < ((float)g_stConfigInfo.RSSI_range/100.0))
|
||||
return -1;
|
||||
// 取出最大值
|
||||
*maxVal = max_val;
|
||||
|
||||
// 可变参数
|
||||
uint16_t max_val_zero_1R5 = max_val * g_stConfigInfo.transducer_cfg_1R5/100;
|
||||
|
@ -403,8 +427,8 @@ void wind_task(void const * argument)
|
|||
play_one_measure(adc_val1,ADC_VAL_LEN);
|
||||
|
||||
|
||||
tofx = cal_tof(adc_val,ADC_VAL_LEN);
|
||||
tofy = cal_tof(adc_val1,ADC_VAL_LEN);
|
||||
tofx = cal_tof(adc_val,ADC_VAL_LEN, &wave_max_val1);addValue(&Test1, wave_max_val1);
|
||||
tofy = cal_tof(adc_val1,ADC_VAL_LEN, &wave_max_val2);addValue(&Test2, wave_max_val2);
|
||||
|
||||
|
||||
// 接受信号很小
|
||||
|
@ -462,8 +486,8 @@ void wind_task(void const * argument)
|
|||
play_one_measure(adc_val1,ADC_VAL_LEN);
|
||||
|
||||
|
||||
tofx = cal_tof(adc_val,ADC_VAL_LEN);
|
||||
tofy = cal_tof(adc_val1,ADC_VAL_LEN);
|
||||
tofx = cal_tof(adc_val,ADC_VAL_LEN, &wave_max_val3);addValue(&Test3, wave_max_val3);
|
||||
tofy = cal_tof(adc_val1,ADC_VAL_LEN, &wave_max_val4);addValue(&Test4, wave_max_val4);
|
||||
|
||||
// 如果测量的信号幅值过小。
|
||||
if(tofx<0||tofy<0)
|
||||
|
|
|
@ -81,6 +81,11 @@ static u_int16_t FRT_WriteRegPoint_3Y(void *pMsg);
|
|||
static u_int16_t FRT_WriteRegPoint_4Y(void *pMsg);
|
||||
static u_int16_t FRT_WriteRegPoint_5Y(void *pMsg);
|
||||
static u_int16_t FRT_WriteRegLinearEnable(void *pMsg);
|
||||
/* 测试 */
|
||||
static u_int16_t FRT_ReadRegTest1(void *pMsg);
|
||||
static u_int16_t FRT_ReadRegTest2(void *pMsg);
|
||||
static u_int16_t FRT_ReadRegTest3(void *pMsg);
|
||||
static u_int16_t FRT_ReadRegTest4(void *pMsg);
|
||||
|
||||
static void pdebug_mcs_info();
|
||||
|
||||
|
@ -121,10 +126,10 @@ FRT_RegProcTable_s g_RegTbl[] =
|
|||
{ FRT_REGISTER_TRANSDUCER_CFG_8R0, FRT_ReadRegTransducerCFG8R0 }, /* 读换能器参数寄存器值8R0 */
|
||||
{ FRT_REGISTER_RSSI_RANGE, FRT_ReadRegRSSIRange }, /* 读RSSI有效范围 */
|
||||
{ FRT_REGISTER_COEFFICIENT, FRT_ReadRegCoefficient }, /* 读粘度修正系数 */
|
||||
{ FRT_REGISTER_DISTANCE_NS, FRT_ReadRegDISTANCE_NS }, /* 读南北探头表面有效距离 */
|
||||
{ FRT_REGISTER_DISTANCE_NS, FRT_ReadRegDISTANCE_NS }, /* 读南北探头表面有效距离 */
|
||||
{ FRT_REGISTER_DISTANCE_WE, FRT_ReadRegDISTANCE_WE }, /* 读东西探头表面有效距离 */
|
||||
{ FRT_REGISTER_ERROR_LOG, FRT_ReadRegErrorData }, /* 读错误日志 */
|
||||
{ FRT_REGISTER_WIND_C_NS, FRT_ReadRegWindC_NS }, /* 读计算得到的南北风速 */
|
||||
{ FRT_REGISTER_WIND_C_NS, FRT_ReadRegWindC_NS }, /* 读计算得到的南北风速 */
|
||||
{ FRT_REGISTER_WIND_C_WE, FRT_ReadRegWindC_WE }, /* 读计算得到的东西风速 */
|
||||
{ FRT_REGISTER_LINEAR_POINT_X_1, FRT_ReadRegPoint_1X }, /* 线性插值原始点1 */
|
||||
{ FRT_REGISTER_LINEAR_POINT_X_2, FRT_ReadRegPoint_2X }, /* 线性插值原始点2 */
|
||||
|
@ -137,6 +142,10 @@ FRT_RegProcTable_s g_RegTbl[] =
|
|||
{ FRT_REGISTER_LINEAR_POINT_Y_4, FRT_ReadRegPoint_4Y }, /* 线性插值校准点4 */
|
||||
{ FRT_REGISTER_LINEAR_POINT_Y_5, FRT_ReadRegPoint_5Y }, /* 线性插值校准点5 */
|
||||
{ FRT_REGISTER_LINEAR_ENABLE, FRT_ReadRegLinearEnable }, /* 线性插值使能 */
|
||||
{ FRT_REGISTER_TEST1, FRT_ReadRegTest1 }, /* 测试寄存器 */
|
||||
{ FRT_REGISTER_TEST2, FRT_ReadRegTest2 }, /* 测试寄存器 */
|
||||
{ FRT_REGISTER_TEST3, FRT_ReadRegTest3 }, /* 测试寄存器 */
|
||||
{ FRT_REGISTER_TEST4, FRT_ReadRegTest4 }, /* 测试寄存器 */
|
||||
};
|
||||
|
||||
/* 写寄存器处理表 */
|
||||
|
@ -797,6 +806,47 @@ static u_int16_t FRT_ReadRegLinearEnable(void *pMsg)
|
|||
return FRT_swap_endian_16(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 111111111111111
|
||||
* @param
|
||||
* @retval
|
||||
*/
|
||||
static u_int16_t FRT_ReadRegTest1(void *pMsg)
|
||||
{
|
||||
u_int16_t value=(u_int16_t)(Test1.ave);
|
||||
return FRT_swap_endian_16(value);
|
||||
}
|
||||
/**
|
||||
* @brief 111111111111111
|
||||
* @param
|
||||
* @retval
|
||||
*/
|
||||
static u_int16_t FRT_ReadRegTest2(void *pMsg)
|
||||
{
|
||||
u_int16_t value=(u_int16_t)(Test2.ave);
|
||||
return FRT_swap_endian_16(value);
|
||||
}
|
||||
/**
|
||||
* @brief 111111111111111
|
||||
* @param
|
||||
* @retval
|
||||
*/
|
||||
static u_int16_t FRT_ReadRegTest3(void *pMsg)
|
||||
{
|
||||
u_int16_t value=(u_int16_t)(Test3.ave);
|
||||
return FRT_swap_endian_16(value);
|
||||
}
|
||||
/**
|
||||
* @brief 111111111111111
|
||||
* @param
|
||||
* @retval
|
||||
*/
|
||||
static u_int16_t FRT_ReadRegTest4(void *pMsg)
|
||||
{
|
||||
u_int16_t value=(u_int16_t)(Test4.ave);
|
||||
return FRT_swap_endian_16(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 写换能器参数寄存器值1R5
|
||||
* @param
|
||||
|
@ -1106,7 +1156,7 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
|
|||
start_reg_addr < 0x00 ||\
|
||||
(start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\
|
||||
(start_reg_addr > FRT_REGISTER_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
||||
start_reg_addr > FRT_REGISTER_LINEAR_ENABLE \
|
||||
start_reg_addr > FRT_REGISTER_TEST4 \
|
||||
)
|
||||
|
||||
{
|
||||
|
@ -1118,7 +1168,7 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
|
|||
reg_num < 0x01 ||\
|
||||
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\
|
||||
(((reg_num + start_reg_addr -1) > FRT_REGISTER_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
||||
((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_ENABLE) \
|
||||
((reg_num + start_reg_addr -1) > FRT_REGISTER_TEST4) \
|
||||
)
|
||||
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue