void ADC_sub_test2(int adc_num){ float ADC_voltage[8] = { 0.00, 3.3, 0.103, 0.206, 0.413, 0.825, 1.65, 3.3 }; unsigned int uiMaxSites = 4; unsigned int uiPinCnt = 10; unsigned int uiCycleCnt = 1; unsigned int uiArySize = uiMaxSites * uiPinCnt*uiCycleCnt; ARRAY iAryPeL(“iAryPeL”, uiArySize);//int pel[10] ARRAY iAryPeH(“iAryPeH”, uiArySize);//int peh[10], ARRAY iAryResult(“iAryPeH”, 4);//int peh[10], int p1[12], code[10];//int p1[12][4], code[10][4]; int pel[10], peh[10], pfail[10]; int ww, www; int i; int sum = 0; char PatNameSt[32], PatNameSp[32], PatNameadc2[32];
for (int i = 0; i < 2; i++) { if (adc_num == 1) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio39, PinMode::Ppmu); PpmuPower(x_gpio39, Ctrl::OFF); PpmuSet(x_gpio39, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio39, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 2) { PinModeSet(x_gpio3a, PinMode::Ppmu); PpmuPower(x_gpio3a, Ctrl::OFF); PpmuSet(x_gpio3a, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio3a, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 3) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio3b, PinMode::Ppmu); PpmuPower(x_gpio3b, Ctrl::OFF); PpmuSet(x_gpio3b, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio3b, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 4) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio42, PinMode::Ppmu); PpmuPower(x_gpio42, Ctrl::OFF); PpmuSet(x_gpio42, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio42, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 5) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio43, PinMode::Ppmu); PpmuPower(x_gpio43, Ctrl::OFF); PpmuSet(x_gpio43, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio43, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 6) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio40, PinMode::Ppmu); PpmuPower(x_gpio40, Ctrl::OFF); PpmuSet(x_gpio40, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio40, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 7) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio41, PinMode::Ppmu); PpmuPower(x_gpio41, Ctrl::OFF); PpmuSet(x_gpio41, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio41, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 8) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio78, PinMode::Ppmu); PpmuPower(x_gpio78, Ctrl::OFF); PpmuSet(x_gpio78, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio78, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } if (adc_num == 9) { VihlSet(ALL_PINS, 3.3 V, 0.0 V); PinModeSet(x_gpio65, PinMode::Ppmu); PpmuPower(x_gpio65, Ctrl::OFF); PpmuSet(x_gpio65, PpmuPM::FVMV, PpmuVR::V6, PpmuIR::I30m, ADC_voltage[i], -30.0 mA, 30.0 mA); PpmuPower(x_gpio65, Ctrl::ON); Delay(3 mS); VohlSet(ALL_PINS, 1.5 V, 1.5 V); ActiveLoadSet(ALL_PINS, 0 uA, 0 uA, 0 V); } sprintf(PatNameadc2, “stm_ate_adc%d_X”, adc_num); FunctionStart(PatNameadc2, “st”, “sp”, 6450); FunctionTest(); sprintf(PatNameadc2, “stm_ate_adc%d_H”, adc_num); FunctionStart(PatNameadc2, “st”, “sp”, 6450); FunctionWait(); Delay(5 mS); ReadLog(x_gpio_20_to_272e2f, uiCycleCnt, iAryPeL, iAryPeH); //pel[10], peh[10], pfail[10]; SerialTest(); //for (int uiSite = 0; uiSite < 4; uiSite++) int iDutNo = DutNoGet(); p1[i] = 0; for (ww = 0; ww <= 9; ww++) { p1[i] = p1[i] * 2 + iAryPeL[uiPinCnt*iDutNo + ww]; } iAryResult[iDutNo] = p1[i]; SerialEnd(); if (i == 0) VarTest(iAryResult, 1, -15, 15, “ADC_00H”, “”, false); if (i == 1) VarTest(iAryResult, 1, 993, 1023, “ADC_400H”, “”, false); } VihlSet(ALL_PINS, 3.3 V, 0.0 V); VohlSet(ALL_PINS, 1.5 V, 1.5 V); if (adc_num == 1) { PpmuPower(x_gpio39, Ctrl::OFF); PinModeSet(x_gpio39, PinMode::DrvCmp); } if (adc_num == 2) { PpmuPower(x_gpio3a, Ctrl::OFF); PinModeSet(x_gpio3a, PinMode::DrvCmp); } if (adc_num == 3) { PpmuPower(x_gpio3b, Ctrl::OFF); PinModeSet(x_gpio3b, PinMode::DrvCmp); } if (adc_num == 4) { PpmuPower(x_gpio42, Ctrl::OFF); PinModeSet(x_gpio42, PinMode::DrvCmp); } if (adc_num == 5) { PpmuPower(x_gpio43, Ctrl::OFF); PinModeSet(x_gpio43, PinMode::DrvCmp); } if (adc_num == 6) { PpmuPower(x_gpio40, Ctrl::OFF); PinModeSet(x_gpio40, PinMode::DrvCmp); } if (adc_num == 7) { PpmuPower(x_gpio41, Ctrl::OFF); PinModeSet(x_gpio41, PinMode::DrvCmp); } if (adc_num == 8) { PpmuPower(x_gpio78, Ctrl::OFF); PinModeSet(x_gpio78, PinMode::DrvCmp); } if (adc_num == 9) { PpmuPower(x_gpio65, Ctrl::OFF); PinModeSet(x_gpio65, PinMode::DrvCmp); } } |