From 92d49c1f9368f1f6774a22dbc2969e51fc12540f Mon Sep 17 00:00:00 2001 From: 105042004 Date: Wed, 30 Oct 2019 19:00:54 +0800 Subject: [PATCH] change CV IV curve function --- .../cc26xx/app/headstage/EliteCVCurve.h | 62 +++++++++---------- .../cc26xx/app/headstage/EliteIVCurve.h | 18 +++--- .../cc26xx/app/headstage/EliteWorkData.h | 20 +++--- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteCVCurve.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteCVCurve.h index 000cbc80b..5391dea73 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteCVCurve.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteCVCurve.h @@ -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; } } } diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteIVCurve.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteIVCurve.h index 5422aad7a..a8ce34032 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteIVCurve.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteIVCurve.h @@ -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; } 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 8d43f647c..be3890b66 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 @@ -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;