diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/AD5940.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/AD5940.h index 154d3ba..c0b9aa7 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/AD5940.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/AD5940.h @@ -119,19 +119,23 @@ static void setEIS_CV (void) w32_REG(0x0000003E); select_REG(LPTIASW0); //LPTIASW0 w32_REG(0x00008034); // SW2 | SW4 | SW5 - select_REG(LPTIACON0); //LPTIACON0 - w32_REG(0x00000038); //RF 0 | RTIA 200R | Rload 0 | High Current Mode + LPTIAGainCtrl(instru.LPTIAGainLv); select_REG(LPDACCON0); //LPDACCON0 w32_REG(0x00000001); //Configure ADC | ADCDAT (0x2074) select_REG(ADCCON); //ADCCON w32_REG(0x00011021); //PGA = 1.5 | VZERO | LPTIA_OUT +// w32_REG(0x00010617); //PGA = 1.5 | AIN2_Vbias_cap | VZERO // to monitor Vzero voltage fluctuation select_REG(ADCFILTERCON); //ADCFILTERCON w32_REG(0x00002011); // Sinc3 En | SINC3OSR2 | SINC2OSR22 select_REG(DFTCON); //DFTCON w32_REG(0x00000001); // Sinc2 to DFT | DFTNUM4 + // mean function for calibration + select_REG(REG_AFE_STATSCON); // don't use mean function + w32_REG(0x00000001); // dev | 128 samples | enable statistics + //AFE and PWMB select_REG(AFECON); //AFECON w32_REG(0x00098780); //ADC on //0b10011000011110000000 diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteADC.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteADC.h index 3c8e0e4..3a02821 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteADC.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteADC.h @@ -204,8 +204,8 @@ static void LPTIAGainCtrl(uint8_t LPTIALevel){ LPTIACON0[12:10] = RLOAD, set at 0R; LPTIACON0[9:5] = RTIA; LPTIACON0[4:3] = IBOOST, High current mode; */ - uint32_t code; - uint8_t data; + uint32_t code = 0x00000038; // disconnect LPF | RL 0R | RTIA 200R | high I mode + uint8_t data = 1; // RTIA = 200R if (LPTIALevel == LPRTIA_64K) { data = 17; //64k @@ -224,7 +224,6 @@ static void LPTIAGainCtrl(uint8_t LPTIALevel){ } select_REG(LPTIACON0); //LPTIACON0 - code = r32_REG(); code = (code & (~(31 << 5))) | (data << 5); select_REG(LPTIACON0); //LPTIACON0 @@ -363,12 +362,12 @@ static int32_t ADCCode2Volt(uint32_t code) { #define VIN_GAIN_MID1_BOUNDARY2 300000 // 300 mV = 300,000,000 nV #define VIN_GAIN_LARGE_BOUNDARY 250000 // 250 mV = 250,000,000 nV -#define LPTIA_GAIN_SMALL_BOUNDARY 1500 // 1.5 uA = 1,500,000 pA -#define LPTIA_GAIN_MID1_BOUNDARY1 1000 // 1 uA = 1,000,000 pA +#define LPTIA_GAIN_SMALL_BOUNDARY 6000 // 6 uA = 1,500,000 pA +#define LPTIA_GAIN_MID1_BOUNDARY1 5000 // 5 uA = 1,000,000 pA #define LPTIA_GAIN_MID1_BOUNDARY2 60000 // 60 uA = 60,000,000 pA -#define LPTIA_GAIN_MID2_BOUNDARY1 40000 // 40 uA = 40,000,000 pA -#define LPTIA_GAIN_MID2_BOUNDARY2 175000 // 175 uA = 175,000 nA -#define LPTIA_GAIN_LARGE_BOUNDARY 120000 // 120 uA = 120,000 nA +#define LPTIA_GAIN_MID2_BOUNDARY1 50000 // 50 uA = 40,000,000 pA +#define LPTIA_GAIN_MID2_BOUNDARY2 600000 // 600 uA = 175,000 nA +#define LPTIA_GAIN_LARGE_BOUNDARY 500000 // 500 uA = 120,000 nA // Current Squared /* old boundary */ @@ -685,7 +684,6 @@ static int32_t read_LPTIA_Iin(){ Iin = Cali_LPTIA(ADCraw, instru.ADCGainLv); InputNotify(NOTIFY_CURRENT, Iin); - InputNotify(NOTIFY_VOLT, ADCraw); InputNotify(NOTIFY_IMPEDANCE, instru.ADCGainLv); return Iin; } diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteDAC.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteDAC.h index 57a57e4..84a3dad 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteDAC.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteDAC.h @@ -79,8 +79,8 @@ static int32_t DAC_outputV(int32_t voltLVraw) { // LPDAC output, voltLV = Vbia select_REG(LPDACDAT0); w32_REG(DACOutCode); - ret = (int32_t)(v_bias - v_zero) / 200; //vscan - // InputNotify(NOTIFY_VOLT, ret/200); + ret = (int32_t)(v_bias - v_zero); //vscan + InputNotify(NOTIFY_VOLT, ret/200); return ret; } diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_cis.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_cis.h index 8ed45d6..13345cf 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_cis.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_cis.h @@ -108,7 +108,6 @@ static void SendCaliValue3(void) { cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][0].HSRTIA_c >> 16) & 0xFF; cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][0].HSRTIA_c >> 8) & 0xFF; cali_buf[index++] = (uint8_t) CaliTable.Lv[0][0].HSRTIA_c & 0xFF; - cali_buf[index++] = (uint8_t) CaliTable.Lv[0][0].HSRTIA_d & 0xFF; cali_buf[0] = index - 1; @@ -134,7 +133,6 @@ static void SendCaliValue4(void) { cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][1].HSRTIA_c >> 16) & 0xFF; cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][1].HSRTIA_c >> 8) & 0xFF; cali_buf[index++] = (uint8_t) CaliTable.Lv[0][1].HSRTIA_c & 0xFF; - cali_buf[index++] = (uint8_t) CaliTable.Lv[0][1].HSRTIA_d & 0xFF; cali_buf[0] = index - 1; @@ -160,7 +158,6 @@ static void SendCaliValue5(void) { cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][2].HSRTIA_c >> 16) & 0xFF; cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][2].HSRTIA_c >> 8) & 0xFF; cali_buf[index++] = (uint8_t) CaliTable.Lv[0][2].HSRTIA_c & 0xFF; - cali_buf[index++] = (uint8_t) CaliTable.Lv[0][2].HSRTIA_d & 0xFF; cali_buf[0] = index - 1; @@ -186,10 +183,6 @@ static void SendCaliValue6(void) { cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_c >> 16) & 0xFF; cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_c >> 8) & 0xFF; cali_buf[index++] = (uint8_t) CaliTable.Lv[0][3].HSRTIA_c & 0xFF; - cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_d >> 24)& 0xFF; - cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_d >> 16) & 0xFF; - cali_buf[index++] = (uint8_t) (CaliTable.Lv[0][3].HSRTIA_d >> 8) & 0xFF; - cali_buf[index++] = (uint8_t) CaliTable.Lv[0][3].HSRTIA_d & 0xFF; cali_buf[0] = index - 1; diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_table.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_table.h index abb055e..1088288 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_table.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/eis_cali_table.h @@ -7,14 +7,19 @@ typedef struct _SingleFilterCali{ uint32_t PhaseParaA; int32_t PhaseParaB; }SingleFilterCali; - +/* res = a*x^2 + b*x + c */ typedef struct _SingleGainLvCali{ int64_t HSRTIA_a; int64_t HSRTIA_b; int64_t HSRTIA_c; - int64_t HSRTIA_d; }SingleGainLvCali; +typedef struct _LowPowerGainLvCali{ + long long LPTIA_coeff_a; + long long LPTIA_coeff_b; + long long LPTIA_coeff_c; +}LowPowerGainLvCali; + struct _CaliTable{ //CIS to Controller char DeviceName[25]; @@ -35,9 +40,7 @@ struct _CaliTable{ long long HSAMP_offset; SingleGainLvCali Lv[4][4]; - long long LPTIA_coeff_a; - long long LPTIA_coeff_b; - long long LPTIA_coeff_c; + LowPowerGainLvCali LP[4]; }CaliTable = @@ -54,16 +57,15 @@ struct _CaliTable{ #ifdef BOARD_FIRST_STEP_CALI { - .DeviceName = "BOARD_FIRST_STEP_CALI", .CutoffFreq = 271200, .OffsetZero = 0x6504, + /* HSTIA calibration data */ // hsrtia160k .Lv[0][0].HSRTIA_a = 0, // 1e8 .Lv[0][0].HSRTIA_b = 5665868, // 1e8 .Lv[0][0].HSRTIA_c = 1612, // 1e4 - .Lv[0][0].HSRTIA_d = 0, // 1e4 .Lv[1][0].HSRTIA_a = 0, // 1e8 .Lv[1][0].HSRTIA_b = 0, // 1e8 .Lv[1][0].HSRTIA_c = 0, // 1e4 @@ -78,7 +80,6 @@ struct _CaliTable{ .Lv[0][1].HSRTIA_a = 3, // 1e8 .Lv[0][1].HSRTIA_b = 44242940, // 1e8 .Lv[0][1].HSRTIA_c = 148206, // 1e4 - .Lv[0][1].HSRTIA_d = 0, // 1e4 .Lv[1][1].HSRTIA_a = 0, // 1e8 .Lv[1][1].HSRTIA_b = 0, // 1e8 .Lv[1][1].HSRTIA_c = 0, // 1e4 @@ -93,7 +94,6 @@ struct _CaliTable{ .Lv[0][2].HSRTIA_a = 2, // 1e8 .Lv[0][2].HSRTIA_b = 178641591, // 1e8 .Lv[0][2].HSRTIA_c = 386005, // 1e4 - .Lv[0][2].HSRTIA_d = 0, // 1e4 .Lv[1][2].HSRTIA_a = 0, // 1e8 .Lv[1][2].HSRTIA_b = 0, // 1e8 .Lv[1][2].HSRTIA_c = 0, // 1e4 @@ -108,7 +108,6 @@ struct _CaliTable{ .Lv[0][3].HSRTIA_a = 9404, // 1e8 .Lv[0][3].HSRTIA_b = 4309654444, // 1e8 .Lv[0][3].HSRTIA_c = 15315713, // 1e4 - .Lv[0][3].HSRTIA_d = 0, // 1e4 .Lv[1][3].HSRTIA_a = 0, // 1e8 .Lv[1][3].HSRTIA_b = 0, // 1e8 .Lv[1][3].HSRTIA_c = 0, // 1e4 @@ -119,6 +118,7 @@ struct _CaliTable{ .Lv[3][3].HSRTIA_b = 0, // 1e8 .Lv[3][3].HSRTIA_c = 0, // 1e4 + /* Phase calibration data */ .Ft[0][0].PhaseParaA = 148031, .Ft[0][0].PhaseParaB = -89728680, .Ft[0][1].PhaseParaA = 0, @@ -155,16 +155,34 @@ struct _CaliTable{ .Ft[3][3].PhaseParaA = 0, .Ft[3][3].PhaseParaB = 0, - //only for EIS 1e10 + /* HSDAC calibration data */ //HSDAC_coeff_a = excel: DAC_AMP .HSDAC_coeff_a = -166, .HSDAC_coeff_b = 9781419, .HSDAC_coeff_c = 181161946, + /* LPDAC calibration data */ //LPDAC_coeff_a = excel: DACoffset .LPDAC_coeff_a = 8, .LPDAC_coeff_b = 8360236, .LPDAC_coeff_c = 131934447554, + + /* LPTIA calibration data */ + .LP[0].LPTIA_coeff_a = 0, // PGA = 1.5 | calibrated by ADCDAT + .LP[0].LPTIA_coeff_b = -54816709, + .LP[0].LPTIA_coeff_c = 179606310, + + .LP[1].LPTIA_coeff_a = 2, + .LP[1].LPTIA_coeff_b = -434063200, + .LP[1].LPTIA_coeff_c = 1422073413, + + .LP[2].LPTIA_coeff_a = -9, + .LP[2].LPTIA_coeff_b = -3163492996, + .LP[2].LPTIA_coeff_c = 10368161009, + + .LP[3].LPTIA_coeff_a = -481, + .LP[3].LPTIA_coeff_b = -16202491299, + .LP[3].LPTIA_coeff_c = 53149447309, }; #elif defined(BOARD_A4_DA_32_D4_E7_96) @@ -177,7 +195,6 @@ struct _CaliTable{ .Lv[0][0].HSRTIA_a = 0, // 1e8 .Lv[0][0].HSRTIA_b = 5665868, // 1e8 .Lv[0][0].HSRTIA_c = 1612, // 1e4 - .Lv[0][0].HSRTIA_d = 0, // 1e4 .Lv[1][0].HSRTIA_a = 0, // 1e8 .Lv[1][0].HSRTIA_b = 0, // 1e8 .Lv[1][0].HSRTIA_c = 0, // 1e4 @@ -192,7 +209,6 @@ struct _CaliTable{ .Lv[0][1].HSRTIA_a = 3, // 1e8 .Lv[0][1].HSRTIA_b = 44242940, // 1e8 .Lv[0][1].HSRTIA_c = 148206, // 1e4 - .Lv[0][1].HSRTIA_d = 0, // 1e4 .Lv[1][1].HSRTIA_a = 0, // 1e8 .Lv[1][1].HSRTIA_b = 0, // 1e8 .Lv[1][1].HSRTIA_c = 0, // 1e4 @@ -207,7 +223,6 @@ struct _CaliTable{ .Lv[0][2].HSRTIA_a = 2, // 1e8 .Lv[0][2].HSRTIA_b = 178641591, // 1e8 .Lv[0][2].HSRTIA_c = 386005, // 1e4 - .Lv[0][2].HSRTIA_d = 0, // 1e4 .Lv[1][2].HSRTIA_a = 0, // 1e8 .Lv[1][2].HSRTIA_b = 0, // 1e8 .Lv[1][2].HSRTIA_c = 0, // 1e4 @@ -222,7 +237,6 @@ struct _CaliTable{ .Lv[0][3].HSRTIA_a = 9404, // 1e8 .Lv[0][3].HSRTIA_b = 4309654444, // 1e8 .Lv[0][3].HSRTIA_c = 15315713, // 1e4 - .Lv[0][3].HSRTIA_d = 0, // 1e4 .Lv[1][3].HSRTIA_a = 0, // 1e8 .Lv[1][3].HSRTIA_b = 0, // 1e8 .Lv[1][3].HSRTIA_c = 0, // 1e4 @@ -277,6 +291,22 @@ struct _CaliTable{ .LPDAC_coeff_a = 9, .LPDAC_coeff_b = 8394985, .LPDAC_coeff_c = 131178634002, + + .LP[0].LPTIA_coeff_a = 0, // PGA = 1.5 | calibrated by ADCDAT + .LP[0].LPTIA_coeff_b = -54816709, + .LP[0].LPTIA_coeff_c = 179606310, + + .LP[1].LPTIA_coeff_a = 2, + .LP[1].LPTIA_coeff_b = -434063200, + .LP[1].LPTIA_coeff_c = 1422073413, + + .LP[2].LPTIA_coeff_a = -9, + .LP[2].LPTIA_coeff_b = -3163492996, + .LP[2].LPTIA_coeff_c = 10368161009, + + .LP[3].LPTIA_coeff_a = -481, + .LP[3].LPTIA_coeff_b = -16202491299, + .LP[3].LPTIA_coeff_c = 53149447309, }; #elif defined(BOARD_2) @@ -289,7 +319,6 @@ struct _CaliTable{ .Lv[0][0].HSRTIA_a = 6, // 1e8 .Lv[0][0].HSRTIA_b = 5364069, // 1e8 .Lv[0][0].HSRTIA_c = 333966, // 1e4 - .Lv[0][0].HSRTIA_d = 0, // 1e4 .Lv[1][0].HSRTIA_a = 0, // 1e8 .Lv[1][0].HSRTIA_b = 0, // 1e8 .Lv[1][0].HSRTIA_c = 0, // 1e4 @@ -304,7 +333,6 @@ struct _CaliTable{ .Lv[0][1].HSRTIA_a = -2, // 1e8 .Lv[0][1].HSRTIA_b = 44356135, // 1e8 .Lv[0][1].HSRTIA_c = -229167, // 1e4 - .Lv[0][1].HSRTIA_d = 0, // 1e4 .Lv[1][1].HSRTIA_a = 0, // 1e8 .Lv[1][1].HSRTIA_b = 0, // 1e8 .Lv[1][1].HSRTIA_c = 0, // 1e4 @@ -319,7 +347,6 @@ struct _CaliTable{ .Lv[0][2].HSRTIA_a = -80, // 1e8 .Lv[0][2].HSRTIA_b = 182590228, // 1e8 .Lv[0][2].HSRTIA_c = -5912444, // 1e4 - .Lv[0][2].HSRTIA_d = 0, // 1e4 .Lv[1][2].HSRTIA_a = 0, // 1e8 .Lv[1][2].HSRTIA_b = 0, // 1e8 .Lv[1][2].HSRTIA_c = 0, // 1e4 @@ -334,7 +361,6 @@ struct _CaliTable{ .Lv[0][3].HSRTIA_a = 8416, // 1e8 .Lv[0][3].HSRTIA_b = 4320620916, // 1e8 .Lv[0][3].HSRTIA_c = 21087122, // 1e4 - .Lv[0][3].HSRTIA_d = 0, // 1e4 .Lv[1][3].HSRTIA_a = 0, // 1e8 .Lv[1][3].HSRTIA_b = 0, // 1e8 .Lv[1][3].HSRTIA_c = 0, // 1e4 @@ -390,9 +416,21 @@ struct _CaliTable{ .LPDAC_coeff_b = 8381700, .LPDAC_coeff_c = 131921128904, - .LPTIA_coeff_a = 0, - .LPTIA_coeff_b = 1e8, - .LPTIA_coeff_c = 0, + .LP[0].LPTIA_coeff_a = 0, // PGA = 1.5 | calibrated by ADCDAT + .LP[0].LPTIA_coeff_b = -54816709, + .LP[0].LPTIA_coeff_c = 179606310, + + .LP[1].LPTIA_coeff_a = 2, + .LP[1].LPTIA_coeff_b = -434063200, + .LP[1].LPTIA_coeff_c = 1422073413, + + .LP[2].LPTIA_coeff_a = -9, + .LP[2].LPTIA_coeff_b = -3163492996, + .LP[2].LPTIA_coeff_c = 10368161009, + + .LP[3].LPTIA_coeff_a = -481, + .LP[3].LPTIA_coeff_b = -16202491299, + .LP[3].LPTIA_coeff_c = 53149447309, }; #endif @@ -436,20 +474,20 @@ static int64_t Cali_HSTIA (uint64_t value, uint8_t gain_level) { static int64_t Cali_LPTIA (uint32_t value, uint8_t gain_level) { /* res = a*x^2 + b*x + c */ int64_t res; - // res = (((int64_t)CaliTable.LPTIA_coeff_a * value * value + - // (int64_t)CaliTable.LPTIA_coeff_b * value + - // (int64_t)CaliTable.LPTIA_coeff_c * 1e4) / 1e8); - - if (gain_level == LPRTIA_200R) { - res = ((int64_t)value * (-161182431) + 5283011111479) / 1e6; - } else if (gain_level == LPRTIA_1K) { - res = ((int64_t)value * (-31279533) + 1025255598163) / 1e6; - } else if (gain_level == LPRTIA_8K) { - res = ((int64_t)value * (-4266773) + 139847876228) / 1e6; - } else if (gain_level == LPRTIA_64K) { - res = ((int64_t)value * (-533907) + 17499366771) / 1e6; - } + res = (((int64_t)CaliTable.LP[gain_level].LPTIA_coeff_a * value * value + + (int64_t)CaliTable.LP[gain_level].LPTIA_coeff_b * value + + (int64_t)CaliTable.LP[gain_level].LPTIA_coeff_c * 1e4) / 1e8); + +// if (gain_level == LPRTIA_200R) { +// res = ((int64_t)value * (-161182431) + 5283011111479) / 1e6; +// } else if (gain_level == LPRTIA_1K) { +// res = ((int64_t)value * (-31279533) + 1025255598163) / 1e6; +// } else if (gain_level == LPRTIA_8K) { +// res = ((int64_t)value * (-4266773) + 139847876228) / 1e6; +// } else if (gain_level == LPRTIA_64K) { +// res = ((int64_t)value * (-533907) + 17499366771) / 1e6; +// } return (int32_t)res; } diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h index e7ce069..1c4d782 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/headstage.h @@ -1085,23 +1085,20 @@ static void update_ZM_instruction(uint8 *ins) { } case cali_CVbias: { // 0x69 - static int32_t LPvolt = 0; - LPvolt = ((int32_t)(ins[4]) << 8) | (int32_t)(ins[5]); + static uint16_t user_volt = 0; + user_volt = ((uint16_t)(ins[4]) << 8) | (uint16_t)(ins[5]); + int32_t LPvolt = (user_volt - 25000) * 4 * 4000; //[5nV] setEIS_CV(); DAC_outputV(LPvolt); - LED_color(DARKLED, 0x80, 0x80, 0x00); +// LED_color(DARKLED, 0x80, 0x80, 0x00); + break; } case cali_CV_gainCtrl: {// 0x59 instru.LPTIAGainLv = ins[4]; - if (instru.LPTIAGainLv != LPRTIA_GAIN_AUTO) { - instru.LPTIAAutoGainEnable = 0; - } else { - instru.LPTIAAutoGainEnable = 1; - instru.LPTIAGainLv = LPRTIA_200R; - } LPTIAGainCtrl(instru.LPTIAGainLv); + break; } case 0x22: { //for Roy