暂存 使用宏控优化采样次数
This commit is contained in:
parent
a0e034e69f
commit
e9f1bead29
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
extern tmosTaskID adc_task_id;
|
extern tmosTaskID adc_task_id;
|
||||||
|
|
||||||
#define VBAT_LOW_MV 3000 // 电池电压低阈值,单位mV
|
#define ADC_SAMPLING_TIME 20
|
||||||
|
|
||||||
void BSP_ADC_Init(void);
|
void BSP_ADC_Init(void);
|
||||||
|
|
||||||
|
|
|
@ -70,12 +70,12 @@ uint16_t BSP_ReadVbat(void)
|
||||||
|
|
||||||
BSP_VBAT_AdcInit();
|
BSP_VBAT_AdcInit();
|
||||||
ADC_ExcutSingleConver(); // 时间足够时建议再次转换并丢弃首次ADC数据
|
ADC_ExcutSingleConver(); // 时间足够时建议再次转换并丢弃首次ADC数据
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < ADC_SAMPLING_TIME; i++)
|
||||||
{
|
{
|
||||||
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
||||||
// DelayMs(1);
|
// DelayMs(1);
|
||||||
}
|
}
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < ADC_SAMPLING_TIME; i++)
|
||||||
{
|
{
|
||||||
countadc += ADC_VoltConverSignalPGA_0dB(adcBuff[i]);
|
countadc += ADC_VoltConverSignalPGA_0dB(adcBuff[i]);
|
||||||
if (i == 0)
|
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);
|
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));
|
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);
|
logDebug("countaveradc = %d", countadc);
|
||||||
vbat_mv = countadc * 3;
|
vbat_mv = countadc * 3;
|
||||||
logDebug("VBAT = %d mV", vbat_mv);
|
logDebug("VBAT = %d mV", vbat_mv);
|
||||||
|
@ -105,12 +105,12 @@ uint16_t BSP_ReadCoil(void)
|
||||||
|
|
||||||
BSP_COIL_AdcInit();
|
BSP_COIL_AdcInit();
|
||||||
ADC_ExcutSingleConver(); // 时间足够时建议再次转换并丢弃首次ADC数据
|
ADC_ExcutSingleConver(); // 时间足够时建议再次转换并丢弃首次ADC数据
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < ADC_SAMPLING_TIME; i++)
|
||||||
{
|
{
|
||||||
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
||||||
// DelayMs(1);
|
// DelayMs(1);
|
||||||
}
|
}
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < ADC_SAMPLING_TIME; i++)
|
||||||
{
|
{
|
||||||
countadc += ADC_VoltConverSignalPGA_0dB(adcBuff[i]);
|
countadc += ADC_VoltConverSignalPGA_0dB(adcBuff[i]);
|
||||||
if (i == 0)
|
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);
|
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));
|
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);
|
logDebug("countaveradc = %d", countadc);
|
||||||
vbat_mv = countadc * 3;
|
vbat_mv = countadc * 3;
|
||||||
logDebug("VBAT = %d mV", vbat_mv);
|
logDebug("VBAT = %d mV", vbat_mv);
|
||||||
|
|
|
@ -265,7 +265,7 @@ static int parse_server_json_data(const char* json_str)
|
||||||
token = lwjson_find(&lwjson, "data.bat");
|
token = lwjson_find(&lwjson, "data.bat");
|
||||||
if (token != NULL && token->type == LWJSON_TYPE_NUM_INT) {
|
if (token != NULL && token->type == LWJSON_TYPE_NUM_INT) {
|
||||||
int battery = (int)token->u.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_Imei();
|
||||||
Module_Get_Imsi();
|
Module_Get_Imsi();
|
||||||
Module_Get_Iccid();
|
Module_Get_Iccid();
|
||||||
DelayMs(2000);
|
DelayMs(1000);
|
||||||
Module_Timer();
|
Module_Timer();
|
||||||
// Module_NetWork_Info(); // 获取网络连接信息
|
// Module_NetWork_Info(); // 获取网络连接信息
|
||||||
}
|
}
|
||||||
|
|
|
@ -444,7 +444,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
||||||
{
|
{
|
||||||
logDebug("VAVLE_LOOP_DECT_EVT");
|
logDebug("VAVLE_LOOP_DECT_EVT");
|
||||||
|
|
||||||
gValveData.bat = BSP_ReadVbat();
|
gValveData.bat = BSP_ReadVbat()/100;
|
||||||
logDebug("BSP_ReadVbat %d",gValveData.bat);
|
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) // 低电压报警事件
|
if (events & VAVLE_LOW_VBAT_ALARM_EVT) // 低电压报警事件
|
||||||
{
|
{
|
||||||
gValveData.bat = BSP_ReadVbat();
|
gValveData.bat = BSP_ReadVbat()/100;
|
||||||
if (gValveData.bat > 25)
|
if (gValveData.bat > 25)
|
||||||
{
|
{
|
||||||
return (events ^ VAVLE_LOW_VBAT_ALARM_EVT);
|
return (events ^ VAVLE_LOW_VBAT_ALARM_EVT);
|
||||||
|
@ -541,7 +541,7 @@ void BSP_VAVLE_Init(void) // 阀门初始化函数
|
||||||
gValveData.atm_pressure = 0;
|
gValveData.atm_pressure = 0;
|
||||||
|
|
||||||
gValveData.type = kTyq; // 设置阀门类型
|
gValveData.type = kTyq; // 设置阀门类型
|
||||||
gValveData.bat = BSP_ReadVbat(); // 读取电池电压
|
gValveData.bat = BSP_ReadVbat()/100; // 读取电池电压
|
||||||
|
|
||||||
BSP_MOTOR_Init(); // 初始化电机
|
BSP_MOTOR_Init(); // 初始化电机
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue