添加ADC增益控制(临时使用,协议控制)

This commit is contained in:
95384 2024-12-09 11:32:55 +08:00
parent f6e99f4d9b
commit 063027c072
7 changed files with 40 additions and 2267 deletions

View File

@ -176,6 +176,9 @@ void play_one_measure(int16_t* result_data,uint32_t len);
// 通过采集的数据计算 风速 风向
void calculate_param(Weather_param *parm ,uint32_t direction , int16_t *adc_buf1,int16_t *adc_buf2,uint32_t len);
// ADC增益控制
extern void enable_adc_gain(void);
extern void disable_adc_gain(void);
void wind_task(void const * argument);
void tem_hum_update_task(void const * argument);

View File

@ -75,6 +75,7 @@ typedef enum
FRT_REGISTER_MAX_WAVE_2 = 52, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_3 = 53, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_4 = 54, /* 换能器最大波形 */
FRT_REGISTER_GAIN_ENABLE = 55, /* ADC增益使能 */
}FRT_MsgRegister;
#pragma pack(push,1)

View File

@ -77,6 +77,17 @@ float32_t max_val_f32;
int32_t max_val_index_f32;
// adc增益使能
void enable_adc_gain(void)
{
HAL_GPIO_WritePin(GPIO_GAIN_SET_GPIO_Port, GPIO_GAIN_SET_Pin, GPIO_PIN_SET);
}
// adc增益取消使能
void disable_adc_gain(void)
{
HAL_GPIO_WritePin(GPIO_GAIN_SET_GPIO_Port, GPIO_GAIN_SET_Pin, GPIO_PIN_RESET);
}
// 多项式插值
// 返回值是最大值
float32_t find_maxVal_by_interpolation(float32_t a,float32_t b,float32_t c)

File diff suppressed because it is too large Load Diff

View File

@ -85,6 +85,7 @@ 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_WriteRegGainEnable(void *pMsg);
static void pdebug_mcs_info();
@ -169,6 +170,7 @@ FRT_RegProcTable_s g_Write_RegTbl[] =
{ FRT_REGISTER_LINEAR_POINT_Y_4, FRT_WriteRegPoint_4Y }, /* 线性插值校准点4 */
{ FRT_REGISTER_LINEAR_POINT_Y_5, FRT_WriteRegPoint_5Y }, /* 线性插值校准点5 */
{ FRT_REGISTER_LINEAR_ENABLE, FRT_WriteRegLinearEnable }, /* 线性插值使能 */
{ FRT_REGISTER_GAIN_ENABLE, FRT_WriteRegGainEnable }, /* ADC增益使能 */
};
/**
@ -1074,6 +1076,26 @@ static u_int16_t FRT_WriteRegLinearEnable(void *pMsg)
return 0;
}
/**
* @brief ADC增益使能
* @param
* @retval
*/
static u_int16_t FRT_WriteRegGainEnable(void *pMsg)
{
uint16_t *pMsgData = (uint16_t *)pMsg;
uint16_t data = *pMsgData;
if(data != 0x0000)
{
enable_adc_gain();
}else
{
disable_adc_gain();
}
return 0;
}
/**
* @brief
@ -1219,7 +1241,7 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg)
if (start_reg_addr < FRT_REGISTER_DEVICE_ADDR ||\
(start_reg_addr > FRT_REGISTER_REST_DEFAULT_SETTING && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
(start_reg_addr > FRT_REGISTER_DISTANCE_WE && start_reg_addr < FRT_REGISTER_LINEAR_POINT_Y_1) ||\
(start_reg_addr > FRT_REGISTER_LINEAR_ENABLE) \
(start_reg_addr > FRT_REGISTER_GAIN_ENABLE) \
)
{
term_printf("start_reg_addr error:%d", start_reg_addr);
@ -1229,7 +1251,7 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg)
((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_REST_DEFAULT_SETTING) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_DISTANCE_WE) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_LINEAR_POINT_Y_1)) ||\
((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_ENABLE) \
((reg_num + start_reg_addr -1) > FRT_REGISTER_GAIN_ENABLE) \
)
{
term_printf("reg_num error:%d", reg_num);

File diff suppressed because it is too large Load Diff

View File

@ -701,7 +701,7 @@
<data>
<extensions></extensions>
<cmdline></cmdline>
<hasPrio>80</hasPrio>
<hasPrio>1</hasPrio>
<buildSequence>inputOutputBased</buildSequence>
</data>
</settings>