[update] test struct fail

This commit is contained in:
Roy
2021-01-08 12:27:28 +08:00
parent 0dc0b66234
commit b0d2697c92
3 changed files with 31 additions and 24 deletions
@@ -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:
@@ -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
@@ -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){