last data point deleted

This commit is contained in:
Taylor Liao
2021-08-23 15:07:00 +08:00
parent ce3462b2b3
commit e8d10e9e87
4 changed files with 29 additions and 16 deletions
@@ -27,12 +27,10 @@ static void eis_fscan(void)
// stop condition
if(eis->_direction_up){
if (instru.fset >= eis->_fmax) {
instru.fset = eis->_fmax;
PeriodicEvent = false;
}
} else {
if (instru.fset <= eis->_fmin) {
instru.fset = eis->_fmin;
PeriodicEvent = false;
}
}
@@ -48,6 +46,10 @@ static void eis_fscan(void)
}
}
if(eis->_decadeIndex != 0 && eis->_sweepIndex == 0){
eis->_sweepIndex++;
}
if(instru.scale == 0) { // logarithm
instru.fset = ((uint64_t)eis->_fd1 * LogSpacingTable[eis->_sweepIndex] + 500)/ 1000;
}
@@ -55,10 +57,6 @@ static void eis_fscan(void)
instru.fset = eis->_fd1 + eis->_sweepIndex * ((eis->_fd2 - eis->_fd1) / (eis->_ppd - 1));
}
if(++eis->_sweepIndex == (eis->_ppd - 1)) {
eis->_sweepIndex = 0;
eis->_decadeIndex ++;
}
} else { //reverse
if(eis->_sweepIndex == 0){
@@ -71,17 +69,20 @@ static void eis_fscan(void)
}
}
if(eis->_decadeIndex != 0 && eis->_sweepIndex == 0){
eis->_sweepIndex++;
}
if(instru.scale == 0) { // logarithm
instru.fset = ((uint64_t)eis->_fd2 * LogSpacingTable[9 - eis->_sweepIndex] + 500)/ 1000;
instru.fset = ((uint64_t)eis->_fd2 * (uint64_t)LogSpacingTable[9 - eis->_sweepIndex] + 500)/ 1000;
}
else if(instru.scale == 1) { // linear
instru.fset = eis->_fd1 - eis->_sweepIndex * ((eis->_fd1 - eis->_fd2) / (eis->_ppd - 1));
}
if(++eis->_sweepIndex == eis->_ppd) {
eis->_sweepIndex = 0;
eis->_decadeIndex ++;
}
}
if(++eis->_sweepIndex == eis->_ppd) {
eis->_sweepIndex = 0;
eis->_decadeIndex ++;
}
}
}
@@ -501,10 +501,19 @@ static void EIS_Plot(void) //real and imag impedance plot
}
}
if(eis->_direction_up){
if (instru.fset >= eis->_fmax) {
finishMode = 1;
}
} else {
if (instru.fset <= eis->_fmin) {
finishMode = 1;
}
}
InputNotify(NOTIFY_CURRENT, instru.imag);
InputNotify(NOTIFY_VOLT, instru.real);
InputNotify(NOTIFY_IMPEDANCE, instru.fset);
// notify_flag = true;
return;
}
@@ -691,9 +691,9 @@ static void update_ZM_instruction(uint8 *ins) {
switch (ins[2]) {
case CURVE_EIS: { //0xD1
if (ins[3] == PARA_1) { //3000D1 01
instru.sampleRate = CalcDelayTime(instru.f1, true); //ms //read
instru.f1 = 67114;//((uint32_t)(ins[4]) << 24) | ((uint32_t)(ins[5]) << 16) | ((uint32_t)(ins[6]) << 8) | (uint32_t)(ins[7]); //FREQ_START
instru.f2 = 67;//((uint32_t)(ins[8]) << 24) | ((uint32_t)(ins[9]) << 16) | ((uint32_t)(ins[10]) << 8) | (uint32_t)(ins[11]); //FREQ_STOP
instru.sampleRate = CalcDelayTime(instru.f1, true); //ms //read
instru.fmax = (uint32_t)VMAX(instru.f1, instru.f2);
instru.fmin = (uint32_t)VMIN(instru.f1, instru.f2);
instru.delay = 10;//((uint16_t)(ins[12]) << 8) | (uint16_t)(ins[13]); //DELAY/10 how many periods
@@ -559,8 +559,7 @@ static void EliteADCControl(void) //CURVE_IV => CC_Plot() | CURVE_CV => Iin_Vin_
static void mode_done(void) //finishMode = 1, SendNotify(), Eliteinterrupt()
{
if ((instru.eliteFxn == CURVE_EIS) ||
(instru.eliteFxn == CURVE_EIS_CV) ||
if ((instru.eliteFxn == CURVE_EIS_CV) ||
(instru.eliteFxn == CURVE_IV) ||
(instru.eliteFxn == CURVE_CV) ||
(instru.eliteFxn == CURVE_LSV) ||
@@ -570,6 +569,10 @@ static void mode_done(void) //finishMode = 1, SendNotify(), Eliteinterrupt()
SendNotify();
Eliteinterrupt();
}
} else if (instru.eliteFxn == CURVE_EIS){
if (!PeriodicEvent) {
Eliteinterrupt();
}
}
}