Merge remote-tracking branch 'origin/Elite_OBJ_Version' into Elite_OBJ_Version

This commit is contained in:
weiting2
2019-10-30 19:03:17 +08:00
3 changed files with 50 additions and 50 deletions
@@ -139,8 +139,8 @@ static uint16_t CVCurve(CVMode *CV) {
// reset origin volt at the begin
if (DACReset) {
DACUserCode = INSTRUCTION.VoltOrigin;
if (INSTRUCTION.VoltFinal > INSTRUCTION.VoltOrigin) {
DACUserCode = CV->GetVOrigin;
if (INSTRUCTION.VoltFinal > CV->GetVOrigin) {
direction_up = true;
current_direction_up = true;
} else {
@@ -155,30 +155,30 @@ static uint16_t CVCurve(CVMode *CV) {
return DACOutCode;
}
if (StepTimeCounter == INSTRUCTION.StepTime) {
if (StepTimeCounter == CV->GetStepTime) {
// Decide next direction
if (direction_up) {
if (DACUserCode >= INSTRUCTION.VoltFinal) {
if (DACUserCode >= CV->GetVStop ) {
current_direction_up = false; // problem occurs when origin == 0000 final == ffff!!!!!!
} else if (DACUserCode <= INSTRUCTION.VoltOrigin) {
} else if (DACUserCode <= CV->GetVOrigin) {
current_direction_up = true;
if (INSTRUCTION.CycleNumber == 0) {
if (CV->GetCycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
INSTRUCTION.CycleNumber--;
CV->_CycleNumber--;
}
} else {
if (DACUserCode <= INSTRUCTION.VoltFinal) {
if (DACUserCode <= CV->GetVStop) {
current_direction_up = true; // problem occurs when origin == 0000 final == ffff!!!!!!
} else if (DACUserCode >= INSTRUCTION.VoltOrigin) {
} else if (DACUserCode >= CV->GetVOrigin) {
current_direction_up = false;
if (INSTRUCTION.CycleNumber == 0) {
if (CV->GetCycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
INSTRUCTION.CycleNumber--;
CV->_CycleNumber--;
}
}
@@ -186,52 +186,52 @@ static uint16_t CVCurve(CVMode *CV) {
if (direction_up) {
if (current_direction_up) {
// DACUserCode overflow ?
if (DACUserCode + INSTRUCTION.Step < DACUserCode) {
DACUserCode = INSTRUCTION.VoltFinal;
if (DACUserCode + CV->GetStep < DACUserCode) {
DACUserCode = CV->GetVStop;
}
else if (DACUserCode + INSTRUCTION.Step > INSTRUCTION.VoltFinal) {
DACUserCode = INSTRUCTION.VoltFinal;
else if (DACUserCode + CV->GetStep > CV->GetVStop) {
DACUserCode =CV->GetVStop;
}
else {
DACUserCode = DACUserCode + INSTRUCTION.Step;
DACUserCode = DACUserCode + CV->GetStep;
}
}
else {
// DACUserCode underflow ?
if (DACUserCode - INSTRUCTION.Step > DACUserCode || DACUserCode > 60000) {
DACUserCode = INSTRUCTION.VoltOrigin;
if (DACUserCode - CV->GetStep > DACUserCode || DACUserCode > 60000) {
DACUserCode = CV->GetVOrigin;
}
// reach Vorigin ?
else if (DACUserCode - INSTRUCTION.Step < INSTRUCTION.VoltOrigin) {
DACUserCode = INSTRUCTION.VoltOrigin;
else if (DACUserCode - CV->GetStep < CV->GetVOrigin) {
DACUserCode = CV->GetVOrigin;
}
else {
DACUserCode = DACUserCode - INSTRUCTION.Step;
DACUserCode = DACUserCode - CV->GetStep;
}
}
}
else {
if (current_direction_up) {
if (DACUserCode + INSTRUCTION.Step < DACUserCode) {
DACUserCode = INSTRUCTION.VoltOrigin;
if (DACUserCode + CV->GetStep < DACUserCode) {
DACUserCode = CV->GetVOrigin;
}
else if (DACUserCode + INSTRUCTION.Step > INSTRUCTION.VoltOrigin) {
DACUserCode = INSTRUCTION.VoltOrigin;
else if (DACUserCode + CV->GetStep > CV->GetVOrigin) {
DACUserCode = CV->GetVOrigin;
}
else {
DACUserCode = DACUserCode + INSTRUCTION.Step;
DACUserCode = DACUserCode + CV->GetStep;
}
}
else {
if (DACUserCode - INSTRUCTION.Step > DACUserCode || DACUserCode > 60000) {
DACUserCode = INSTRUCTION.VoltFinal;
if (DACUserCode - CV->GetStep > DACUserCode || DACUserCode > 60000) {
DACUserCode = CV->GetVStop ;
}
else if (DACUserCode - INSTRUCTION.Step < INSTRUCTION.VoltFinal) {
DACUserCode = INSTRUCTION.VoltFinal;
else if (DACUserCode - CV->GetStep < CV->GetVStop) {
DACUserCode = CV->GetVStop;
}
else {
DACUserCode = DACUserCode - INSTRUCTION.Step;
DACUserCode = DACUserCode - CV->GetStep;
}
}
}
@@ -27,10 +27,10 @@ static uint16_t VoltScan(WorkMode *WorkModeData) {
static uint16_t OneWayVoltScan(IVMode *IV) {
static uint16_t DACOutCode;
// reset origin volt at the begin
if (DACReset) {
DACUserCode = INSTRUCTION.VoltOrigin;
DACUserCode = IV->GetVOrigin;
DACOutCode = Usercode_Correction_to_DAC(DACUserCode);
DACReset = false;
@@ -39,26 +39,26 @@ static uint16_t OneWayVoltScan(IVMode *IV) {
return DACOutCode;
}
if (StepTimeCounter == INSTRUCTION.StepTime) {
if (INSTRUCTION.VoltOrigin < INSTRUCTION.VoltFinal) {
if (StepTimeCounter == IV->GetStepTime) {
if (IV->GetVOrigin < IV->GetVStop) {
// output the next output volt
DACUserCode = DACUserCode + INSTRUCTION.Step;
DACUserCode = DACUserCode + IV->GetStep ;
DACOutCode = Usercode_Correction_to_DAC(DACUserCode);
DAC_outputV(DACOutCode);
// end IV task if we reach INSTRUCTION.VoltFinal
if (DACUserCode >= INSTRUCTION.VoltFinal) {
if (DACUserCode >= IV->GetVStop) {
PeriodicEvent = false;
DACReset = true;
}
} else {
DACUserCode = DACUserCode - INSTRUCTION.Step;
DACUserCode = DACUserCode - IV->GetStep;
// check if DACUserCode underflow
if(DACUserCode >= 60000){
// LED_color(DARKLED, 0xFF, 0x00, 0x00);
DACUserCode = INSTRUCTION.VoltFinal;
DACUserCode = IV->GetVStop;
}
// int32_t DACUC = DACUserCode;
@@ -72,7 +72,7 @@ static uint16_t OneWayVoltScan(IVMode *IV) {
DAC_outputV(DACOutCode);
// end IV task if we reach INSTRUCTION.VoltFinal
if (DACUserCode <= INSTRUCTION.VoltFinal) {
if (DACUserCode <= IV->GetVStop) {
PeriodicEvent = false;
DACReset = true;
}
@@ -206,7 +206,7 @@ typedef struct _VoltOutMode{
static VoltOutMode *InitVoltOutMode(){
VoltOutMode *ret = malloc(sizeof(VoltOutMode));
ret->_VoltOut = 25000; // 25000 is DAC_ZERO
ret->_VoltOut = INSTRUCTION.VoltConstant; // 25000 is DAC_ZERO
ret->_VOrigin = 25000;
ret->_VStop = 25000;
ret->_Step = 0;
@@ -246,10 +246,10 @@ static IVMode *InitIVMode(){
ret->GetMeasureData = &_GetMeasureData;
ret->_VoltOut = 25000; // 25000 is DAC_ZERO
ret->_VOrigin = 25000;
ret->_VStop = 25000;
ret->_Step = 0;
ret->_StepTime = 10000; // STEPTIME_ONE_SEC
ret->_VOrigin = INSTRUCTION.VoltOrigin;
ret->_VStop = INSTRUCTION.VoltFinal;
ret->_Step = INSTRUCTION.Step;
ret->_StepTime = INSTRUCTION.StepTime; // STEPTIME_ONE_SEC
ret->_CycleNumber = 1;
ret->SetVoltOut = &_SetVoltOut;
@@ -321,11 +321,11 @@ static CVMode * InitCVMode(){
ret->GetMeasureData = &_GetMeasureData;
ret->_VoltOut = 25000; // 25000 is DAC_ZERO
ret->_VOrigin = 25000;
ret->_VStop = 25000;
ret->_Step = 0;
ret->_StepTime = 10000; // STEPTIME_ONE_SEC
ret->_CycleNumber = 1;
ret->_VOrigin = INSTRUCTION.VoltOrigin;
ret->_VStop = INSTRUCTION.VoltFinal;
ret->_Step = INSTRUCTION.Step;
ret->_StepTime = INSTRUCTION.StepTime; // STEPTIME_ONE_SEC
ret->_CycleNumber = INSTRUCTION.CycleNumber;
ret->SetVoltOut = &_SetVoltOut;
ret->GetVoltOut = &_GetVoltOut;