diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteWorkData.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteWorkData.h index ae9517a43..80cb0ec30 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteWorkData.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteWorkData.h @@ -6,6 +6,7 @@ #include "EliteInstruction.h" static bool Free_Work_Mode = false; +static int32_t testV = 0; typedef void (*InitWorkData) (); /***** Template of Measure and VoltOut parameter *****/ @@ -144,7 +145,7 @@ VTMode * InitVTMode(){ ret->_measureCurrent = 0; ret->_measureVin = 0; ret->_measureVout = 0; - ret->_measureBat = 5; + ret->_measureBat = 6789; ret->_VoViSwitch = INSTRUCTION.VoViSwitch; return ret; } @@ -466,21 +467,27 @@ WorkMode *CreateWorkMode(){ void InitWorkMode(WorkMode *WM){ switch(INSTRUCTION.eliteFxn){ case TT_CURVE: + testV = 1; WM->TT = InitTTMode(); break; case VOLT_OUTPUT: + testV = 2; WM->VO = InitVoltOutMode(); break; case CALI_DAC_MODE: + testV = 3; WM->VO = InitVoltOutMode(); break; case IT_CURVE: + testV = 4; WM->IT = InitITMode(); break; case VT_CURVE: + testV = 5; WM->VT = InitVTMode(); break; case ZT_CURVE: + testV = 6; WM->RT = InitRTMode(); break; case IV_CURVE: diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_def.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_def.h index e4f6c1165..b3623c09d 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_def.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_def.h @@ -44,28 +44,6 @@ enum all_mode_e { PULSE_MODE = 0x94, }; -#define IV_CURVE 0x10 -#define CV_CURVE 0x20 -#define VOLT_OUTPUT 0x30 -#define ZT_CURVE 0x40 -#define VT_CURVE 0x55 -#define TT_CURVE 0x50 -#define IT_CURVE 0x60 -#define SET_SAMPLE_RATE 0x70 -#define SET_ADC_DAC_GAIN 0x80 -#define DIFFERENTIAL_PULSE_VOLTAMMETRY 0xA0 -#define SQUARE_WAVE_VOLTAMMETRY 0xB0 -#define CYCLIC_VOLTAMMETRY 0xC0 -#define CONSTANT_CURRENT 0xD0 -#define CYCLE_CONSTANT_CURRENT 0xF0 -#define HIGH_CYCLE_CYCLIC_VOLTAMMETRY 0x01 -#define LINEAR_SWEEP_VOLTAMMETRY 0x02 -#define CONSTANT_VSCAN 0x03 -#define ADC_TEST 0x91 -#define CALI_DAC_MODE 0x93 -#define CALI_ADC_MODE 0x92 -#define PULSE_MODE 0x94 - // CIS (control instruction) #define CIS_VERSION 0x40 #define CIS_VOLT 0x10 diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_mode_ADC_DAC.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_mode_ADC_DAC.h index 87411ad42..644384936 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_mode_ADC_DAC.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_mode_ADC_DAC.h @@ -249,7 +249,26 @@ static void VT_Plot(WorkMode *WorkModeData) { } }else{ if(ADCSwitch == 0){ /**read V(buffer)**/ - VoltData = readVinVout(WorkModeData); + if(MEASURE_SWITCH(WorkModeData) == 0x01 || MEASURE_SWITCH(WorkModeData) == 0x02){ + if(INSTRUCTION.VinAutoGainEnable){ + MEASURE_VIN(WorkModeData) = AutoGainReadVin(spi_ADC_rxbuf); + AutoGainChangeVin(MEASURE_VIN(WorkModeData)); + }else{ + ReadADCVolt(MEASURE_SWITCH(WorkModeData)); + MEASURE_VIN(WorkModeData) = DecodeADCValue(INSTRUCTION.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf); + if(lastVinADCGainLevel != INSTRUCTION.VinADCGainLevel){ + VinADCGainControl(INSTRUCTION.VinADCGainLevel); + record_flag = false; + } + + } + VoltData = MEASURE_VIN(WorkModeData); + }else if(MEASURE_SWITCH(WorkModeData) == 0x00){ + ReadADCVolt(MEASURE_SWITCH(WorkModeData)); + MEASURE_VOUT(WorkModeData) = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf); + VoltData = MEASURE_VOUT(WorkModeData); + } + if(record_flag == false){ static int recordCount = 0; recordCount++; @@ -271,7 +290,10 @@ static void VT_Plot(WorkMode *WorkModeData) { ADCSwitch = 0; } } + + MEASURE_BAT(WorkModeData) = testV; InputNotify(NOTIFY_CURRENT, MEASURE_BAT(WorkModeData)); + InputNotify(NOTIFY_IMPEDANCE, WorkModeData->VT->_measureBat); } static void readIin(WorkMode *WorkModeData){