diff --git a/users/Src/adcs.c b/users/Src/adcs.c index 7fdcf58..17f1c00 100644 --- a/users/Src/adcs.c +++ b/users/Src/adcs.c @@ -1,8 +1,8 @@ #include "adcs.h" -uint32_t ADC_ConvertedValue[10] = {0};//ADC数据 +uint32_t ADC_ConvertedValue[50] = {0};//ADC数据 -uint32_t adc_sum = 0; +uint32_t adc_sum = 0,ao_adc_data = 0; int adc_cnt = 0; @@ -20,17 +20,21 @@ void adcs_data(void) // } HAL_ADC_Start(&hadc1); ADC_ConvertedValue[adc_cnt] = HAL_ADC_GetValue(&hadc1); -// adc_cnt++; -// -// if(adc_cnt > 4) adc_cnt = 0; -// -// for(int i = 0;i < 5;i++) -// { -// adc_sum += ADC_ConvertedValue[i]; -// } -// ADC_ConvertedValue[5] = adc_sum / 5; -// adc_sum = 0; + adc_cnt++; - InputReg[12] = (uint16_t)(((float)(ADC_ConvertedValue[0]) * 3300 / 4095) / 0.082f); + if(adc_cnt > 49) + { + adc_cnt = 0; + + for(int i = 0;i < 50;i++) + { + adc_sum += ADC_ConvertedValue[i]; + } + ao_adc_data = adc_sum / 50; + adc_sum = 0; + } + + InputReg[12] = (uint16_t)(((float)(ao_adc_data) * 3300 / 4095.0f) / 0.082f); + InputReg[12] = InputReg[12] * 1.0004f - 19.5f; //adc_sum = 0; } diff --git a/users/Src/gpios.c b/users/Src/gpios.c index b1295ca..e2ad405 100644 --- a/users/Src/gpios.c +++ b/users/Src/gpios.c @@ -37,25 +37,17 @@ void digital_ctrl() { led_ctrl(); - //全开全关ESD控制信号互斥 + //全开全关控制信号互斥 if(((CoilState[0]>>0)&0x01) && !position_on) { CoilState[0] = CoilState[0] & 0xfd; - CoilState[0] = CoilState[0] & 0xfb; } if(((CoilState[0]>>1)&0x01) && !position_off) { CoilState[0] = CoilState[0] & 0xfe; - CoilState[0] = CoilState[0] & 0xfb; - } - if(((CoilState[0]>>2)&0x01) && !position_esd) - { - CoilState[0] = CoilState[0] & 0xfe; - CoilState[0] = CoilState[0] & 0xfd; } position_on = (CoilState[0]>>0)&0x01; position_off = (CoilState[0]>>1)&0x01; - position_esd = (CoilState[0]>>2)&0x01; //八位DO输出控制 PE2_DO1((GPIO_PinState)((CoilState[0]>>0)&0x01));