[update] organize code

This commit is contained in:
Roy
2021-01-28 10:41:45 +08:00
parent 341c5939ac
commit 81d9aaab1f
3 changed files with 70 additions and 70 deletions
@@ -19,11 +19,11 @@
bool _current_direction_up; \
uint16_t _cycleNumber
#define MEASURE_CURRENT(_m) (((struct wm_meas_t *)(_m))->_measureCurrent)
#define MEASURE_VIN(_m) (((struct wm_meas_t *)(_m))->_measureVin)
#define MEASURE_VOUT(_m) (((struct wm_meas_t *)(_m))->_measureVout)
#define MEASURE_BAT(_m) (((struct wm_meas_t *)(_m))->_measureBat)
#define MEASURE_SWITCH(_m) (((struct wm_meas_t *)(_m))->_VoViSwitch)
#define MEAS_CURR(_m) (((struct wm_meas_t *)(_m))->_measureCurrent)
#define MEAS_VIN(_m) (((struct wm_meas_t *)(_m))->_measureVin)
#define MEAS_VOUT(_m) (((struct wm_meas_t *)(_m))->_measureVout)
#define MEAS_BAT(_m) (((struct wm_meas_t *)(_m))->_measureBat)
#define VOLT_SW(_m) (((struct wm_meas_t *)(_m))->_VoViSwitch)
struct wm_meas_t {
int32_t _measureCurrent;
@@ -110,11 +110,11 @@ static void CC_Plot(void)
if (BatSwitch == 0) {
if (ADCSwitch == 0) { /**read Iin(buffer),read bat**/
if (instru.AutoGainEnable) {
MEASURE_CURRENT(wm) = AutoGainReadIin(spi_ADC_rxbuf);
AutoGainChangeIin(MEASURE_CURRENT(wm));
MEAS_CURR(wm) = AutoGainReadIin(spi_ADC_rxbuf);
AutoGainChangeIin(MEAS_CURR(wm));
} else {
ReadADCIin(spi_ADC_rxbuf);
MEASURE_CURRENT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
MEAS_CURR(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
if (lastIinADCGainLevel != instru.ADCGainLevel) {
IinADCGainControl(instru.ADCGainLevel);
record_flag = false;
@@ -128,7 +128,7 @@ static void CC_Plot(void)
recordCount = 0;
}
} else {
InputNotify(NOTIFY_CURRENT, MEASURE_CURRENT(wm));
InputNotify(NOTIFY_CURRENT, MEAS_CURR(wm));
}
DACenable(AFTER_READ_I);
@@ -138,27 +138,27 @@ static void CC_Plot(void)
ReadADCBat(spi_ADC_rxbuf);
BatSwitch++;
} else if(ADCSwitch == 2) { /**read V(buffer),read bat**/
if (MEASURE_SWITCH(wm) == 0x01 || MEASURE_SWITCH(wm) == 0x02) {
if (VOLT_SW(wm) == 0x01 || VOLT_SW(wm) == 0x02) {
if (instru.VinAutoGainEnable) {
MEASURE_VIN(wm) = AutoGainReadVin(spi_ADC_rxbuf);
AutoGainChangeVin(MEASURE_VIN(wm));
MEAS_VIN(wm) = AutoGainReadVin(spi_ADC_rxbuf);
AutoGainChangeVin(MEAS_VIN(wm));
} else {
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VIN(wm) = DecodeADCValue(instru.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
ReadADCVolt(VOLT_SW(wm));
MEAS_VIN(wm) = DecodeADCValue(instru.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
if (lastVinADCGainLevel != instru.VinADCGainLevel) {
VinADCGainControl(instru.VinADCGainLevel);
record_flag = false;
}
}
VoltData = MEASURE_VIN(wm);
} else if (MEASURE_SWITCH(wm) == 0x00) {
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VOUT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
VoltData = MEASURE_VOUT(wm);
VoltData = MEAS_VIN(wm);
} else if (VOLT_SW(wm) == 0x00) {
ReadADCVolt(VOLT_SW(wm));
MEAS_VOUT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
VoltData = MEAS_VOUT(wm);
}
if (instru.VoViSwitch == 0x02) {
int32_t Vscan = (Vset / 200 - MEASURE_VIN(wm));
int32_t Vscan = (Vset / 200 - MEAS_VIN(wm));
Vscan = (int32_t)(Vscan);//[1uV]
InputNotify(NOTIFY_VOLT, Vscan);
} else {
@@ -183,11 +183,11 @@ static void CC_Plot(void)
BatSwitch = 0;
if (ADCSwitch == 0) { /**read Iin(buffer),read V**/
if (instru.AutoGainEnable) {
MEASURE_CURRENT(wm) = AutoGainReadIin(spi_ADC_rxbuf);
AutoGainChangeIin(MEASURE_CURRENT(wm));
MEAS_CURR(wm) = AutoGainReadIin(spi_ADC_rxbuf);
AutoGainChangeIin(MEAS_CURR(wm));
} else {
ReadADCIin(spi_ADC_rxbuf);
MEASURE_CURRENT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
MEAS_CURR(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
if (lastIinADCGainLevel != instru.ADCGainLevel) {
IinADCGainControl(instru.ADCGainLevel);
record_flag = false;
@@ -201,37 +201,37 @@ static void CC_Plot(void)
recordCount = 0;
}
} else {
InputNotify(NOTIFY_CURRENT, MEASURE_CURRENT(wm));
InputNotify(NOTIFY_CURRENT, MEAS_CURR(wm));
}
DACenable(AFTER_READ_I);
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch++;
} else if(ADCSwitch == 1) { /**read V**/
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch++;
} else if(ADCSwitch == 2) { /**read V(buffer),read Iin**/
if (MEASURE_SWITCH(wm) == 0x01 || MEASURE_SWITCH(wm) == 0x02) {
if (VOLT_SW(wm) == 0x01 || VOLT_SW(wm) == 0x02) {
if (instru.VinAutoGainEnable) {
MEASURE_VIN(wm) = AutoGainReadVin(spi_ADC_rxbuf);
AutoGainChangeVin(MEASURE_VIN(wm));
MEAS_VIN(wm) = AutoGainReadVin(spi_ADC_rxbuf);
AutoGainChangeVin(MEAS_VIN(wm));
} else {
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VIN(wm) = DecodeADCValue(instru.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
ReadADCVolt(VOLT_SW(wm));
MEAS_VIN(wm) = DecodeADCValue(instru.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
if (lastVinADCGainLevel != instru.VinADCGainLevel) {
VinADCGainControl(instru.VinADCGainLevel);
record_flag = false;
}
}
VoltData = MEASURE_VIN(wm);
} else if (MEASURE_SWITCH(wm) == 0x00) {
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VOUT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
VoltData = MEASURE_VOUT(wm);
VoltData = MEAS_VIN(wm);
} else if (VOLT_SW(wm) == 0x00) {
ReadADCVolt(VOLT_SW(wm));
MEAS_VOUT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
VoltData = MEAS_VOUT(wm);
}
if (instru.VoViSwitch == 0x02) {
int32_t Vscan = (Vset / 200 - MEASURE_VIN(wm));
int32_t Vscan = (Vset / 200 - MEAS_VIN(wm));
Vscan = (int32_t)(Vscan);//[1uV]
InputNotify(NOTIFY_VOLT, Vscan);
} else {
@@ -262,11 +262,11 @@ static void IT_Plot(void)
} else {
if (ADCSwitch == 0) { /**read Iin(buffer)**/
if (instru.AutoGainEnable) {
MEASURE_CURRENT(wm) = AutoGainReadIin(spi_ADC_rxbuf);
AutoGainChangeIin(MEASURE_CURRENT(wm));
MEAS_CURR(wm) = AutoGainReadIin(spi_ADC_rxbuf);
AutoGainChangeIin(MEAS_CURR(wm));
} else {
ReadADCIin(spi_ADC_rxbuf);
MEASURE_CURRENT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
MEAS_CURR(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
if (lastIinADCGainLevel != instru.ADCGainLevel) {
IinADCGainControl(instru.ADCGainLevel);
record_flag = false;
@@ -280,7 +280,7 @@ static void IT_Plot(void)
recordCount = 0;
}
} else {
InputNotify(NOTIFY_CURRENT, MEASURE_CURRENT(wm));
InputNotify(NOTIFY_CURRENT, MEAS_CURR(wm));
}
ADCSwitch++;
} else if (ADCSwitch == 1) { /**read Iin**/
@@ -302,29 +302,29 @@ static void VT_Plot(void)
if (batteryCheck_flag) {
EliteADCBattery();
if (!batteryCheck_flag) {
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch = 2;
}
} else {
if (ADCSwitch == 0) { /**read V(buffer)**/
if (MEASURE_SWITCH(wm) == 0x01 || MEASURE_SWITCH(wm) == 0x02) {
if (VOLT_SW(wm) == 0x01 || VOLT_SW(wm) == 0x02) {
if (instru.VinAutoGainEnable) {
MEASURE_VIN(wm) = AutoGainReadVin(spi_ADC_rxbuf);
AutoGainChangeVin(MEASURE_VIN(wm));
MEAS_VIN(wm) = AutoGainReadVin(spi_ADC_rxbuf);
AutoGainChangeVin(MEAS_VIN(wm));
} else {
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VIN(wm) = DecodeADCValue(instru.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
ReadADCVolt(VOLT_SW(wm));
MEAS_VIN(wm) = DecodeADCValue(instru.VinADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
if (lastVinADCGainLevel != instru.VinADCGainLevel) {
VinADCGainControl(instru.VinADCGainLevel);
record_flag = false;
}
}
VoltData = MEASURE_VIN(wm);
} else if (MEASURE_SWITCH(wm) == 0x00) {
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VOUT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
VoltData = MEASURE_VOUT(wm);
VoltData = MEAS_VIN(wm);
} else if (VOLT_SW(wm) == 0x00) {
ReadADCVolt(VOLT_SW(wm));
MEAS_VOUT(wm) = DecodeADCValue(instru.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
VoltData = MEAS_VOUT(wm);
}
if (record_flag == false) {
@@ -339,10 +339,10 @@ static void VT_Plot(void)
}
ADCSwitch++;
} else if (ADCSwitch == 1) { /**read V**/
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch++;
} else if (ADCSwitch == 2) { /**read V**/
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch = 0;
}
}
@@ -358,10 +358,10 @@ static void cali_IT_plot(void) {
if(ADCSwitch == 0){ /**read Iin(buffer)**/
if(instru.AutoGainEnable){
MEASURE_CURRENT(wm) = 0xFFFF;
MEAS_CURR(wm) = 0xFFFF;
}else{
ReadADCIin(spi_ADC_rxbuf);
MEASURE_CURRENT(wm) = (int32_t) (spi_ADC_rxbuf[0] << 8) | (int32_t) (spi_ADC_rxbuf[1]);
MEAS_CURR(wm) = (int32_t) (spi_ADC_rxbuf[0] << 8) | (int32_t) (spi_ADC_rxbuf[1]);
if(lastIinADCGainLevel != instru.ADCGainLevel){
IinADCGainControl(instru.ADCGainLevel);
record_flag = false;
@@ -402,8 +402,8 @@ static void cali_IT_plot(void) {
ModeLED(NO_EVENT);
}else{
cali_count++;
ADCValueSUM = ADCValueSUM + MEASURE_CURRENT(wm);
InputNotify(NOTIFY_CURRENT, MEASURE_CURRENT(wm));
ADCValueSUM = ADCValueSUM + MEAS_CURR(wm);
InputNotify(NOTIFY_CURRENT, MEAS_CURR(wm));
InputNotify(NOTIFY_VOLT, ADCValueSUM);
InputNotify(NOTIFY_IMPEDANCE, (int32_t)cali_count);
}
@@ -431,19 +431,19 @@ static void cali_VT_plot(void) {
static uint16_t cali_count_max = 1000;
if(ADCSwitch == 0){ /**read Iin(buffer)**/
if(MEASURE_SWITCH(wm) == 0x01 || MEASURE_SWITCH(wm) == 0x02){
if(VOLT_SW(wm) == 0x01 || VOLT_SW(wm) == 0x02){
if(instru.VinAutoGainEnable){
MEASURE_VIN(wm) = 0xFFFF;
MEAS_VIN(wm) = 0xFFFF;
}else{
ReadADCVolt(MEASURE_SWITCH(wm));
MEASURE_VIN(wm) = (int32_t) (spi_ADC_rxbuf[0] << 8) | (int32_t) (spi_ADC_rxbuf[1]);
ReadADCVolt(VOLT_SW(wm));
MEAS_VIN(wm) = (int32_t) (spi_ADC_rxbuf[0] << 8) | (int32_t) (spi_ADC_rxbuf[1]);
if(lastVinADCGainLevel != instru.VinADCGainLevel){
VinADCGainControl(instru.VinADCGainLevel);
record_flag = false;
}
}
VoltData = MEASURE_VIN(wm);
VoltData = MEAS_VIN(wm);
}
if(instru.VinADCGainLevel == 0) {
@@ -481,8 +481,8 @@ static void cali_VT_plot(void) {
ModeLED(NO_EVENT);
}else{
cali_count++;
ADCValueSUM = ADCValueSUM + MEASURE_VIN(wm);
InputNotify(NOTIFY_VOLT, MEASURE_VIN(wm));
ADCValueSUM = ADCValueSUM + MEAS_VIN(wm);
InputNotify(NOTIFY_VOLT, MEAS_VIN(wm));
InputNotify(NOTIFY_CURRENT, ADCValueSUM);
InputNotify(NOTIFY_IMPEDANCE, (int32_t)cali_count);
}
@@ -490,11 +490,11 @@ static void cali_VT_plot(void) {
ADCSwitch++;
}
else if(ADCSwitch == 1){ /**read v**/
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch++;
}
else if(ADCSwitch == 2){ /**read v**/
ReadADCVolt(MEASURE_SWITCH(wm));
ReadADCVolt(VOLT_SW(wm));
ADCSwitch = 0;
}
}
@@ -4,9 +4,9 @@
#define VERSION_DATE_YEAR 21
#define VERSION_DATE_MONTH 1
#define VERSION_DATE_DAY 27
#define VERSION_DATE_HOUR 15
#define VERSION_DATE_MINUTE 3
#define VERSION_DATE_DAY 28
#define VERSION_DATE_HOUR 10
#define VERSION_DATE_MINUTE 41
// this is NOT the version hash !!
// it's the last version hash