暂存 使用宏控优化采样次数

This commit is contained in:
常正强 2025-06-11 11:20:42 +08:00
parent a0e034e69f
commit e9f1bead29
4 changed files with 12 additions and 12 deletions

View File

@ -22,7 +22,7 @@
extern tmosTaskID adc_task_id;
#define VBAT_LOW_MV 3000 // 电池电压低阈值单位mV
#define ADC_SAMPLING_TIME 20
void BSP_ADC_Init(void);

View File

@ -70,12 +70,12 @@ uint16_t BSP_ReadVbat(void)
BSP_VBAT_AdcInit();
ADC_ExcutSingleConver(); // 时间足够时建议再次转换并丢弃首次ADC数据
for (i = 0; i < 20; i++)
for (i = 0; i < ADC_SAMPLING_TIME; i++)
{
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
// DelayMs(1);
}
for (i = 0; i < 20; i++)
for (i = 0; i < ADC_SAMPLING_TIME; i++)
{
countadc += ADC_VoltConverSignalPGA_0dB(adcBuff[i]);
if (i == 0)
@ -87,7 +87,7 @@ uint16_t BSP_ReadVbat(void)
max_number = ((max_number < ADC_VoltConverSignalPGA_0dB(adcBuff[i])) ? ADC_VoltConverSignalPGA_0dB(adcBuff[i]) : max_number);
}
logDebug("min=%d, max=%d, diff=%d", min_number, max_number, (max_number - min_number));
countadc = (countadc - min_number - max_number) / 18; // 删除最小与最大值
countadc = (countadc - min_number - max_number) / (ADC_SAMPLING_TIME - 2); // 删除最小与最大值
logDebug("countaveradc = %d", countadc);
vbat_mv = countadc * 3;
logDebug("VBAT = %d mV", vbat_mv);
@ -105,12 +105,12 @@ uint16_t BSP_ReadCoil(void)
BSP_COIL_AdcInit();
ADC_ExcutSingleConver(); // 时间足够时建议再次转换并丢弃首次ADC数据
for (i = 0; i < 20; i++)
for (i = 0; i < ADC_SAMPLING_TIME; i++)
{
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
// DelayMs(1);
}
for (i = 0; i < 20; i++)
for (i = 0; i < ADC_SAMPLING_TIME; i++)
{
countadc += ADC_VoltConverSignalPGA_0dB(adcBuff[i]);
if (i == 0)
@ -122,7 +122,7 @@ uint16_t BSP_ReadCoil(void)
max_number = ((max_number < ADC_VoltConverSignalPGA_0dB(adcBuff[i])) ? ADC_VoltConverSignalPGA_0dB(adcBuff[i]) : max_number);
}
logDebug("min=%d, max=%d, diff=%d", min_number, max_number, (max_number - min_number));
countadc = (countadc - min_number - max_number) / 18; // 删除最小与最大值
countadc = (countadc - min_number - max_number) / (ADC_SAMPLING_TIME - 2); // 删除最小与最大值
logDebug("countaveradc = %d", countadc);
vbat_mv = countadc * 3;
logDebug("VBAT = %d mV", vbat_mv);

View File

@ -265,7 +265,7 @@ static int parse_server_json_data(const char* json_str)
token = lwjson_find(&lwjson, "data.bat");
if (token != NULL && token->type == LWJSON_TYPE_NUM_INT) {
int battery = (int)token->u.num_int;
logDebug("Battery: %d%%\r\n", battery);
logDebug("Battery: %d%mv\r\n", battery);
}
// 湿度
@ -732,7 +732,7 @@ static void BSP_Get_Module_Info(void)
Module_Get_Imei();
Module_Get_Imsi();
Module_Get_Iccid();
DelayMs(2000);
DelayMs(1000);
Module_Timer();
// Module_NetWork_Info(); // 获取网络连接信息
}

View File

@ -444,7 +444,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
{
logDebug("VAVLE_LOOP_DECT_EVT");
gValveData.bat = BSP_ReadVbat();
gValveData.bat = BSP_ReadVbat()/100;
logDebug("BSP_ReadVbat %d",gValveData.bat);
// 电压过低就关阀
@ -468,7 +468,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
if (events & VAVLE_LOW_VBAT_ALARM_EVT) // 低电压报警事件
{
gValveData.bat = BSP_ReadVbat();
gValveData.bat = BSP_ReadVbat()/100;
if (gValveData.bat > 25)
{
return (events ^ VAVLE_LOW_VBAT_ALARM_EVT);
@ -541,7 +541,7 @@ void BSP_VAVLE_Init(void) // 阀门初始化函数
gValveData.atm_pressure = 0;
gValveData.type = kTyq; // 设置阀门类型
gValveData.bat = BSP_ReadVbat(); // 读取电池电压
gValveData.bat = BSP_ReadVbat()/100; // 读取电池电压
BSP_MOTOR_Init(); // 初始化电机