/* ================================================================ */ /* ADC初期設定 */ void SetupADC(void) { //Select the channels to convert and end of conversion flag EALLOW; //ADC_A /*CPU TIMER2 SOC0~3*/ AdcaRegs.ADCSOC0CTL.bit.CHSEL = 2; //SOC0 pin A2 PN15 AdcaRegs.ADCSOC1CTL.bit.CHSEL = 3; //SOC1 pin A3 P15 AdcaRegs.ADCSOC2CTL.bit.CHSEL = 4; //SOC2 pin A4 PN5 AdcaRegs.ADCSOC3CTL.bit.CHSEL = 5; //SOC3 pin A5 P5 // AdcaRegs.ADCSOC0CTL.bit.ACQPS = 20; //sample window is 20 + 1 SYSCLK cycles : 5ns × 21 = 105ns AdcaRegs.ADCSOC0CTL.bit.ACQPS = 399; //sample window is 399 + 1 SYSCLK cycles : 5ns × 400 = 2μs // (2μs/sysclk【=5ns =1/2MHz】) - 1 =399 AdcaRegs.ADCSOC1CTL.bit.ACQPS = 399; AdcaRegs.ADCSOC2CTL.bit.ACQPS = 399; AdcaRegs.ADCSOC3CTL.bit.ACQPS = 399; AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 3; //CPU1_Timer2(2ms) AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 3; AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 3; AdcaRegs.ADCSOC3CTL.bit.TRIGSEL = 3; //ADC_B /*CPU TIMER2 SOC0~1*/ AdcbRegs.ADCSOC0CTL.bit.CHSEL = 2; //SOC0 pin B2 P33 AdcbRegs.ADCSOC1CTL.bit.CHSEL = 3; //SOC1 pin B3 P18 AdcbRegs.ADCSOC0CTL.bit.ACQPS = 399; AdcbRegs.ADCSOC1CTL.bit.ACQPS = 399; AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 3; //CPU1_Timer2(2ms) AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 3; //ADC_C /*CPU TIMER2 SOC0~2*/ AdccRegs.ADCSOC0CTL.bit.CHSEL = 2; //SOC0 pin C2 AdccRegs.ADCSOC1CTL.bit.CHSEL = 3; //SOC1 pin C3 AdccRegs.ADCSOC2CTL.bit.CHSEL = 4; //SOC2 pin C4 AdccRegs.ADCSOC0CTL.bit.ACQPS = 399; AdccRegs.ADCSOC1CTL.bit.ACQPS = 399; AdccRegs.ADCSOC2CTL.bit.ACQPS = 399; AdccRegs.ADCSOC0CTL.bit.TRIGSEL = 3; //CPU1_Timer2(2ms) AdccRegs.ADCSOC1CTL.bit.TRIGSEL = 3; AdccRegs.ADCSOC2CTL.bit.TRIGSEL = 3; //ADC-D /*CPU TIMER2 SOC0~4*/ AdcdRegs.ADCSOC0CTL.bit.CHSEL = 0; //SOC0 pin D0 AdcdRegs.ADCSOC1CTL.bit.CHSEL = 1; //SOC1 pin D1 AdcdRegs.ADCSOC2CTL.bit.CHSEL = 2; //SOC2 pin D2 AdcdRegs.ADCSOC3CTL.bit.CHSEL = 3; //SOC3 pin D3 AdcdRegs.ADCSOC4CTL.bit.CHSEL = 4; //SOC4 pin D4 AdcdRegs.ADCSOC0CTL.bit.ACQPS = 399; AdcdRegs.ADCSOC1CTL.bit.ACQPS = 399; AdcdRegs.ADCSOC2CTL.bit.ACQPS = 399; AdcdRegs.ADCSOC3CTL.bit.ACQPS = 399; AdcdRegs.ADCSOC4CTL.bit.ACQPS = 399; AdcdRegs.ADCSOC0CTL.bit.TRIGSEL = 3; //CPU1_Timer2(2ms) AdcdRegs.ADCSOC1CTL.bit.TRIGSEL = 3; AdcdRegs.ADCSOC2CTL.bit.TRIGSEL = 3; AdcdRegs.ADCSOC3CTL.bit.TRIGSEL = 3; AdcdRegs.ADCSOC4CTL.bit.TRIGSEL = 3; AdcdRegs.ADCINTSEL3N4.bit.INT4SEL = 4; //end of SOC4 will set INT4 flag AdcdRegs.ADCINTSEL3N4.bit.INT4E = 1; //enable INT4 flag AdcdRegs.ADCINTFLGCLR.bit.ADCINT4 = 1; //make sure INT4 flag is cleared EDIS; }