fix change level
This commit is contained in:
+77
-90
@@ -4,6 +4,7 @@
|
||||
#define Vset INSTRUCTION.Vset
|
||||
|
||||
static void readIin(WorkMode *WorkModeData);
|
||||
static int32_t readVinVout(WorkMode *WorkModeData);
|
||||
|
||||
static uint16_t OneWayVoltScan() {
|
||||
static uint16_t DACOutCode;
|
||||
@@ -151,58 +152,19 @@ static void CC_Plot(WorkMode *WorkModeData){
|
||||
static int32_t VoltData = 0;
|
||||
|
||||
if(batteryCheck_flag){
|
||||
if(ADCSwitch == 0){
|
||||
if(BatSwitch == 0){ /**read Iin(buffer),read bat**/
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
CURRENT_MODE->_measureCurrent = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
AutoGainChange(CURRENT_MODE->_measureCurrent);
|
||||
}else{
|
||||
ADCGainControl(INSTRUCTION.ADCGainLevel);
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
CURRENT_MODE->_measureCurrent = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
if(BatSwitch == 0){
|
||||
if(ADCSwitch == 0){ /**read Iin(buffer),read bat**/
|
||||
readIin(WorkModeData);
|
||||
InputNotify(NOTIFY_CURRENT, CURRENT_MODE->_measureCurrent);
|
||||
DACenable(WorkModeData, VoltData, AFTER_READ_I);
|
||||
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 1){
|
||||
}else if(ADCSwitch == 1 || ADCSwitch == 3){ /**read Bat**/
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 2){
|
||||
headstage_battery_volt();
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
batteryCheck_flag = false;
|
||||
BatSwitch = 0;
|
||||
ADCSwitch = 3;
|
||||
}
|
||||
}
|
||||
else if(ADCSwitch == 1 || ADCSwitch == 3){
|
||||
if(BatSwitch == 0){ /**read Bat**/
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 1){
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 2){
|
||||
headstage_battery_volt();
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
batteryCheck_flag = false;
|
||||
BatSwitch = 0;
|
||||
ADCSwitch = 3;
|
||||
}
|
||||
}
|
||||
else if(ADCSwitch == 2){
|
||||
if(BatSwitch == 0){ /**read V(buffer),read bat**/
|
||||
ReadADCVolt(CURRENT_MODE->_VoViSwitch);
|
||||
if(CURRENT_MODE->_VoViSwitch == 0x01 || CURRENT_MODE->_VoViSwitch == 0x02){
|
||||
CURRENT_MODE->_measureVin = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
|
||||
VoltData = CURRENT_MODE->_measureVin;
|
||||
}else if(CURRENT_MODE->_VoViSwitch == 0x00){
|
||||
CURRENT_MODE->_measureVout = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
|
||||
VoltData = CURRENT_MODE->_measureVout;
|
||||
}
|
||||
|
||||
}else if(ADCSwitch == 2){ /**read V(buffer),read bat**/
|
||||
VoltData = readVinVout(WorkModeData);
|
||||
if(INSTRUCTION.VoViSwitch == 0x02){
|
||||
int32_t Vscan = (Vset / 200 - CURRENT_MODE->_measureVin);
|
||||
Vscan = (int32_t)(Vscan);//[1uV]
|
||||
@@ -210,27 +172,25 @@ static void CC_Plot(WorkMode *WorkModeData){
|
||||
}else{
|
||||
InputNotify(NOTIFY_VOLT, VoltData);
|
||||
}
|
||||
|
||||
DACenable(WorkModeData, VoltData, AFTER_READ_V);
|
||||
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 1){
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 2){
|
||||
headstage_battery_volt();
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
batteryCheck_flag = false;
|
||||
BatSwitch = 0;
|
||||
ADCSwitch = 3;
|
||||
}
|
||||
}else if(BatSwitch == 1){
|
||||
ReadBatVolt(spi_ADC_rxbuf);
|
||||
BatSwitch++;
|
||||
}else if(BatSwitch == 2){
|
||||
headstage_battery_volt();
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
batteryCheck_flag = false;
|
||||
BatSwitch = 0;
|
||||
ADCSwitch = 3;
|
||||
}
|
||||
}else{
|
||||
BatSwitch = 0;
|
||||
if(ADCSwitch == 0){ /**read Iin(buffer),read V**/
|
||||
readIin(WorkModeData);
|
||||
|
||||
InputNotify(NOTIFY_CURRENT, CURRENT_MODE->_measureCurrent);
|
||||
DACenable(WorkModeData, VoltData, AFTER_READ_I);
|
||||
|
||||
@@ -242,15 +202,7 @@ static void CC_Plot(WorkMode *WorkModeData){
|
||||
ADCSwitch++;
|
||||
}
|
||||
else if(ADCSwitch == 2){ /**read V(buffer),read Iin**/
|
||||
ReadADCVolt(CURRENT_MODE->_VoViSwitch);
|
||||
if(CURRENT_MODE->_VoViSwitch == 0x01 || CURRENT_MODE->_VoViSwitch == 0x02){
|
||||
CURRENT_MODE->_measureVin = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
|
||||
VoltData = CURRENT_MODE->_measureVin;
|
||||
}else if(CURRENT_MODE->_VoViSwitch == 0x00){
|
||||
CURRENT_MODE->_measureVout = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
|
||||
VoltData = CURRENT_MODE->_measureVout;
|
||||
}
|
||||
|
||||
VoltData = readVinVout(WorkModeData);
|
||||
if(INSTRUCTION.VoViSwitch == 0x02){
|
||||
int32_t Vscan = (Vset / 200 - CURRENT_MODE->_measureVin);
|
||||
Vscan = (int32_t)(Vscan);//[1uV]
|
||||
@@ -258,7 +210,6 @@ static void CC_Plot(WorkMode *WorkModeData){
|
||||
}else{
|
||||
InputNotify(NOTIFY_VOLT, VoltData);
|
||||
}
|
||||
|
||||
DACenable(WorkModeData, VoltData, AFTER_READ_V);
|
||||
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
@@ -269,7 +220,6 @@ static void CC_Plot(WorkMode *WorkModeData){
|
||||
ADCSwitch = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#undef CURRENT_MODE
|
||||
}
|
||||
|
||||
@@ -323,13 +273,7 @@ static void ZT_Plot(WorkMode *WorkModeData) {
|
||||
if(batteryCheck_flag){
|
||||
if(ADCSwitch == 0){
|
||||
if(BatSwitch == 0){ /**read Iin(buffer),read bat**/
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
CURRENT_MODE->_measureCurrent = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
AutoGainChange(CURRENT_MODE->_measureCurrent);
|
||||
}else{
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
CURRENT_MODE->_measureCurrent = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
readIin(WorkModeData);
|
||||
InputNotify(NOTIFY_CURRENT, CURRENT_MODE->_measureCurrent);
|
||||
DACenable(WorkModeData, VoltData, AFTER_READ_I);
|
||||
|
||||
@@ -433,7 +377,7 @@ static void ZT_Plot(WorkMode *WorkModeData) {
|
||||
}
|
||||
|
||||
#undef CURRENT_MODE
|
||||
}
|
||||
}//mayby take away
|
||||
|
||||
static void IT_Plot(WorkMode *WorkModeData) {
|
||||
switch (INSTRUCTION.eliteFxn) {
|
||||
@@ -488,13 +432,7 @@ static void IT_Plot(WorkMode *WorkModeData) {
|
||||
}
|
||||
}else{
|
||||
if(ADCSwitch == 0){ /**read Iin(buffer)**/
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
CURRENT_MODE->_measureCurrent = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
AutoGainChange(CURRENT_MODE->_measureCurrent);
|
||||
}else{
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
CURRENT_MODE->_measureCurrent = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
readIin(WorkModeData);
|
||||
InputNotify(NOTIFY_CURRENT, CURRENT_MODE->_measureCurrent);
|
||||
ADCSwitch++;
|
||||
}
|
||||
@@ -568,14 +506,7 @@ static void VT_Plot(WorkMode *WorkModeData) {
|
||||
}
|
||||
}else{
|
||||
if(ADCSwitch == 0){ /**read V(buffer)**/
|
||||
ReadADCVolt(CURRENT_MODE->_VoViSwitch);
|
||||
if(CURRENT_MODE->_VoViSwitch == 0x01){
|
||||
CURRENT_MODE->_measureVin = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
|
||||
VoltData = CURRENT_MODE->_measureVin;
|
||||
}else if(CURRENT_MODE->_VoViSwitch == 0x00){
|
||||
CURRENT_MODE->_measureVout = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
|
||||
VoltData = CURRENT_MODE->_measureVout;
|
||||
}
|
||||
VoltData = readVinVout(WorkModeData);
|
||||
InputNotify(NOTIFY_VOLT, VoltData);
|
||||
ADCSwitch++;
|
||||
}
|
||||
@@ -633,6 +564,7 @@ static void readIin(WorkMode *WorkModeData){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
TEMP_MODE->_measureCurrent = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
AutoGainChange(TEMP_MODE->_measureCurrent);
|
||||
@@ -644,5 +576,60 @@ static void readIin(WorkMode *WorkModeData){
|
||||
#undef TEMP_MODE
|
||||
}
|
||||
|
||||
static int32_t readVinVout(WorkMode *WorkModeData){
|
||||
switch (INSTRUCTION.eliteFxn) {
|
||||
case IT_CURVE:{
|
||||
#define TEMP_MODE WorkModeData->IT
|
||||
break;
|
||||
}
|
||||
case VT_CURVE:{
|
||||
#define TEMP_MODE WorkModeData->VT
|
||||
break;
|
||||
}
|
||||
case ZT_CURVE:{
|
||||
#define TEMP_MODE WorkModeData->RT
|
||||
break;
|
||||
}
|
||||
case IV_CURVE:{
|
||||
#define TEMP_MODE WorkModeData->IV
|
||||
break;
|
||||
}
|
||||
case CV_CURVE:{
|
||||
#define TEMP_MODE WorkModeData->CV
|
||||
break;
|
||||
}
|
||||
case CONSTANT_CURRENT:{
|
||||
#define TEMP_MODE WorkModeData->CC
|
||||
break;
|
||||
}
|
||||
case CYCLIC_VOLTAMMETRY:{
|
||||
#define TEMP_MODE WorkModeData->CV3
|
||||
break;
|
||||
}
|
||||
case LINEAR_SWEEP_VOLTAMMETRY:{
|
||||
#define TEMP_MODE WorkModeData->LSV
|
||||
break;
|
||||
}
|
||||
case CONSTANT_VSCAN:{
|
||||
#define TEMP_MODE WorkModeData->CVSCAN
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int32_t VoltData;
|
||||
ReadADCVolt(TEMP_MODE->_VoViSwitch);
|
||||
if(TEMP_MODE->_VoViSwitch == 0x01 || TEMP_MODE->_VoViSwitch == 0x02){
|
||||
TEMP_MODE->_measureVin = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_VOLT, spi_ADC_rxbuf);
|
||||
VoltData = TEMP_MODE->_measureVin;
|
||||
}else if(TEMP_MODE->_VoViSwitch == 0x00){
|
||||
TEMP_MODE->_measureVout = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_DAC, spi_ADC_rxbuf);
|
||||
VoltData = TEMP_MODE->_measureVout;
|
||||
}
|
||||
#undef TEMP_MODE
|
||||
return VoltData;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+3
-3
@@ -4,9 +4,9 @@
|
||||
|
||||
#define VERSION_DATE_YEAR 20
|
||||
#define VERSION_DATE_MONTH 7
|
||||
#define VERSION_DATE_DAY 27
|
||||
#define VERSION_DATE_HOUR 18
|
||||
#define VERSION_DATE_MINUTE 27
|
||||
#define VERSION_DATE_DAY 28
|
||||
#define VERSION_DATE_HOUR 10
|
||||
#define VERSION_DATE_MINUTE 9
|
||||
|
||||
// this is NOT the version hash !!
|
||||
// it's the last version hash
|
||||
|
||||
+3
-3
@@ -212,11 +212,11 @@ static void SimpleBLEPeripheral_performPeriodicTask(WorkMode *WorkModeData) {
|
||||
static void EliteADCControl(WorkMode *WorkModeData) {
|
||||
switch (INSTRUCTION.eliteFxn) {
|
||||
case IV_CURVE:{
|
||||
ZT_Plot(WorkModeData);
|
||||
CC_Plot(WorkModeData);
|
||||
break;
|
||||
}
|
||||
case CV_CURVE:{
|
||||
ZT_Plot(WorkModeData);
|
||||
CC_Plot(WorkModeData);
|
||||
break;
|
||||
}
|
||||
case IT_CURVE:{
|
||||
@@ -228,7 +228,7 @@ static void EliteADCControl(WorkMode *WorkModeData) {
|
||||
break;
|
||||
}
|
||||
case ZT_CURVE:{
|
||||
ZT_Plot(WorkModeData);
|
||||
CC_Plot(WorkModeData);
|
||||
break;
|
||||
}
|
||||
case CONSTANT_CURRENT:{
|
||||
|
||||
Reference in New Issue
Block a user