diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h index de1b601a9..385eddc20 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h @@ -679,6 +679,7 @@ static uint16_t SampleRate = 1; static uint16_t SampleRate_counter = 1; // record real voltage and real current from DecodeADCValue() +static int16_t avg_number = 1; static int32_t ADCRealCurrent_avg = 0; static int32_t ADCRealCurrent = 0; static int32_t ADCRealVolt = 0; diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/impedance_meter.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/impedance_meter.h index ab4039a27..0d16ed00d 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/impedance_meter.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/impedance_meter.h @@ -725,7 +725,9 @@ static void reset() { StepTimeCounter = 1; SampleRate = 1; SampleRate_counter = 1; + avg_number = 1; ADCRealCurrent = 0; + ADCRealCurrent_avg = 0; ADCRealVolt = 0; LEDPowerON(); @@ -766,7 +768,9 @@ static void Eliteinterrupt() { StepTimeCounter = 1; SampleRate = 1; SampleRate_counter = 1; + avg_number = 1; ADCRealCurrent = 0; + ADCRealCurrent_avg = 0; ADCRealVolt = 0; LEDPowerON(); @@ -805,7 +809,9 @@ static void CleanBuffer() { Step = 0x9E; // 10 = 0x0A ~= 3.05 mv ~= 3 mv StepTime = 20; // 0x30 = 2'd48 ~= 2 second, 24 = 0x18 StepTimeCounter = 1; + avg_number = 1; ADCRealCurrent = 0; + ADCRealCurrent_avg = 0; ADCRealVolt = 0; for (int i = 0; i < SPI_LED_SIZE; i++) { @@ -918,17 +924,17 @@ static void EliteNotifyControl() { // } if (SampleRate_counter == SampleRate) { ADCRealCurrent = ADCRealCurrent / SampleRate; - ADCRealCurrent_avg = (ADCRealCurrent + ADCRealCurrent_avg*(SampleRate - 1)) / SampleRate; + ADCRealCurrent_avg = (ADCRealCurrent + ADCRealCurrent_avg*(avg_number - 1)) / avg_number; + ADCRealCurrent = 0; } if (StepTimeCounter == StepTime) { - - - NotifyCurrent[0] = (uint8_t) (ADCRealCurrent >> 24); - NotifyCurrent[1] = (uint8_t) ((ADCRealCurrent & 0x00FF0000) >> 16); - NotifyCurrent[2] = (uint8_t) ((ADCRealCurrent & 0x0000FF00) >> 8); - NotifyCurrent[3] = (uint8_t) (ADCRealCurrent & 0x000000FF); - + NotifyCurrent[0] = (uint8_t) (ADCRealCurrent_avg >> 24); + NotifyCurrent[1] = (uint8_t) ((ADCRealCurrent_avg & 0x00FF0000) >> 16); + NotifyCurrent[2] = (uint8_t) ((ADCRealCurrent_avg & 0x0000FF00) >> 8); + NotifyCurrent[3] = (uint8_t) (ADCRealCurrent_avg & 0x000000FF); + avg_number = 1; + ADCRealCurrent_avg = 0; ADCRealCurrent = 0; SendNotify(); }