//ADC_initAdcA - 初始化ADCA配置并启动
void ADC_initAdcABCD(void)
{
uint16_t i;
void ADC_initAdcABCD(void)
{
uint16_t i;
EALLOW;
//写入配置
AdcaRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCA, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdcbRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCB, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdccRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCC, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdcdRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCD, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdcaRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCA, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdcbRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCB, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdccRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCC, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
AdcdRegs.ADCCTL2.bit.PRESCALE = 6;//将 ADCCLK 分频器设置为 /4
AdcSetMode(ADC_ADCD, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
//将脉冲位置设置为后期
AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcbRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdccRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcdRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcbRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdccRegs.ADCCTL1.bit.INTPULSEPOS = 1;
AdcdRegs.ADCCTL1.bit.INTPULSEPOS = 1;
//打开 ADC 的电源
AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdccRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdcdRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdccRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdcdRegs.ADCCTL1.bit.ADCPWDNZ = 1;
//延迟 ± 1ms,允许 ADC 时间通电
for(i = 0; i < 1000; i++)
{
asm(" RPT#255 || NOP");
}
for(i = 0; i < 1000; i++)
{
asm(" RPT#255 || NOP");
}
//选择要转换的通道和转换标志结束 ADCA**********************************
//Iu过采样
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0 将转换引脚 A2
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 2;//SOC1 将转换引脚 A2
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2 将转换引脚 A2
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VR过采样
AdcaRegs.ADCSOC3CTL.bit.CHSEL = 4;//SOC3 将转换引脚 A4
AdcaRegs.ADCSOC3CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4 将转换引脚 A4
AdcaRegs.ADCSOC4CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC5CTL.bit.CHSEL = 4;//SOC5 将转换引脚 A4
AdcaRegs.ADCSOC5CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VDC1过采样
AdcaRegs.ADCSOC6CTL.bit.CHSEL = 5;//SOC6 将转换引脚 A5
AdcaRegs.ADCSOC6CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC6CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC7CTL.bit.CHSEL = 5;//SOC7 将转换引脚 A5
AdcaRegs.ADCSOC7CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC7CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC8CTL.bit.CHSEL = 5;//SOC8 将转换引脚 A5
AdcaRegs.ADCSOC8CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC8CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//OH1采样
AdcaRegs.ADCSOC9CTL.bit.CHSEL = 3;//SOC9 将转换引脚 A3
AdcaRegs.ADCSOC9CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC9CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//TEMP SENSOR采样
AdcaRegs.ADCSOC10CTL.bit.CHSEL = 13;//SOC10 将转换引脚 A13
AdcaRegs.ADCSOC10CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC10CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//Iu过采样
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0 将转换引脚 A2
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 2;//SOC1 将转换引脚 A2
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2 将转换引脚 A2
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VR过采样
AdcaRegs.ADCSOC3CTL.bit.CHSEL = 4;//SOC3 将转换引脚 A4
AdcaRegs.ADCSOC3CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4 将转换引脚 A4
AdcaRegs.ADCSOC4CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC5CTL.bit.CHSEL = 4;//SOC5 将转换引脚 A4
AdcaRegs.ADCSOC5CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VDC1过采样
AdcaRegs.ADCSOC6CTL.bit.CHSEL = 5;//SOC6 将转换引脚 A5
AdcaRegs.ADCSOC6CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC6CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC7CTL.bit.CHSEL = 5;//SOC7 将转换引脚 A5
AdcaRegs.ADCSOC7CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC7CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOC8CTL.bit.CHSEL = 5;//SOC8 将转换引脚 A5
AdcaRegs.ADCSOC8CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC8CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//OH1采样
AdcaRegs.ADCSOC9CTL.bit.CHSEL = 3;//SOC9 将转换引脚 A3
AdcaRegs.ADCSOC9CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC9CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//TEMP SENSOR采样
AdcaRegs.ADCSOC10CTL.bit.CHSEL = 13;//SOC10 将转换引脚 A13
AdcaRegs.ADCSOC10CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcaRegs.ADCSOC10CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcaRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0x00;
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 0;//清除 INT1 标志
AdcaRegs.ADCINTSEL1N2.bit.INT1CONT = 0;
AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0xA;//SOC10 的结束将设置 INT1 标志
AdcaRegs.ADCINTSOCSEL1.all = 0;
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1 标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保清除 INT1 标志
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 0;//清除 INT1 标志
AdcaRegs.ADCINTSEL1N2.bit.INT1CONT = 0;
AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0xA;//SOC10 的结束将设置 INT1 标志
AdcaRegs.ADCINTSOCSEL1.all = 0;
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1 标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保清除 INT1 标志
//选择要转换的通道和转换标志结束 ADCB************************************
//VG1采样
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0 将转换引脚 B2
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//IGX采样
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 3;//SOC1 将转换引脚 B3
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VG1采样
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0 将转换引脚 B2
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//IGX采样
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 3;//SOC1 将转换引脚 B3
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcbRegs.ADCSOCPRICTL.bit.RRPOINTER = 15;
//选择要转换的通道和转换标志结束 ADCC************************************
//Iv过采样
AdccRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0 将转换引脚 C2
AdccRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC1CTL.bit.CHSEL = 2;//SOC1 将转换引脚 C2
AdccRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2 将转换引脚 C2
AdccRegs.ADCSOC2CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VS过采样
AdccRegs.ADCSOC3CTL.bit.CHSEL = 4;//SOC3 将转换引脚 C4
AdccRegs.ADCSOC3CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4 将转换引脚 C4
AdccRegs.ADCSOC4CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC5CTL.bit.CHSEL = 4;//SOC5 将转换引脚 C4
AdccRegs.ADCSOC5CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//OH2采样
AdccRegs.ADCSOC6CTL.bit.CHSEL = 3;//SOC6 将转换引脚 C3
AdccRegs.ADCSOC6CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC6CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//Iv过采样
AdccRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0 将转换引脚 C2
AdccRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC1CTL.bit.CHSEL = 2;//SOC1 将转换引脚 C2
AdccRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2 将转换引脚 C2
AdccRegs.ADCSOC2CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VS过采样
AdccRegs.ADCSOC3CTL.bit.CHSEL = 4;//SOC3 将转换引脚 C4
AdccRegs.ADCSOC3CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4 将转换引脚 C4
AdccRegs.ADCSOC4CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOC5CTL.bit.CHSEL = 4;//SOC5 将转换引脚 C4
AdccRegs.ADCSOC5CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//OH2采样
AdccRegs.ADCSOC6CTL.bit.CHSEL = 3;//SOC6 将转换引脚 C3
AdccRegs.ADCSOC6CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdccRegs.ADCSOC6CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdccRegs.ADCSOCPRICTL.bit.RRPOINTER = 15;
//选择要转换的通道和转换标志结束 ADCD************************************
//Iw过采样
AdcdRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0 将转换引脚 D0
AdcdRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC1CTL.bit.CHSEL = 0;//SOC1 将转换引脚 D0
AdcdRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC2CTL.bit.CHSEL = 0;//SOC2 将转换引脚 D0
AdcdRegs.ADCSOC2CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VT过采样
AdcdRegs.ADCSOC3CTL.bit.CHSEL = 4;//SOC3 将转换引脚 D4
AdcdRegs.ADCSOC3CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4 将转换引脚 D4
AdcdRegs.ADCSOC4CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC5CTL.bit.CHSEL = 4;//SOC5 将转换引脚 D4
AdcdRegs.ADCSOC5CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VDC2过采样
AdcdRegs.ADCSOC6CTL.bit.CHSEL = 1;//SOC6 将转换引脚 D1
AdcdRegs.ADCSOC6CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC6CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC7CTL.bit.CHSEL = 1;//SOC7 将转换引脚 D1
AdcdRegs.ADCSOC7CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC7CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC8CTL.bit.CHSEL = 1;//SOC8 将转换引脚 D1
AdcdRegs.ADCSOC8CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC8CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//Iw过采样
AdcdRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0 将转换引脚 D0
AdcdRegs.ADCSOC0CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC1CTL.bit.CHSEL = 0;//SOC1 将转换引脚 D0
AdcdRegs.ADCSOC1CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC2CTL.bit.CHSEL = 0;//SOC2 将转换引脚 D0
AdcdRegs.ADCSOC2CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VT过采样
AdcdRegs.ADCSOC3CTL.bit.CHSEL = 4;//SOC3 将转换引脚 D4
AdcdRegs.ADCSOC3CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4 将转换引脚 D4
AdcdRegs.ADCSOC4CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC5CTL.bit.CHSEL = 4;//SOC5 将转换引脚 D4
AdcdRegs.ADCSOC5CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
//VDC2过采样
AdcdRegs.ADCSOC6CTL.bit.CHSEL = 1;//SOC6 将转换引脚 D1
AdcdRegs.ADCSOC6CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC6CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC7CTL.bit.CHSEL = 1;//SOC7 将转换引脚 D1
AdcdRegs.ADCSOC7CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC7CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOC8CTL.bit.CHSEL = 1;//SOC8 将转换引脚 D1
AdcdRegs.ADCSOC8CTL.bit.ACQPS = 29;//示例窗口为 30 SYSCLK 周期
AdcdRegs.ADCSOC8CTL.bit.TRIGSEL = 1;//CPU1 Timer0 SOCA/C 上的触发器
AdcdRegs.ADCSOCPRICTL.bit.RRPOINTER = 15;
EDIS;
}
}
上边是我对ADC的配置程序,CPU1 Timer0设置成1s触发一次,通过Registers观测结果寄存器,发现一部分寄存器结果一直没变化。
例如AdcaResultRegs.ADCRESULT0由ADCa的SOC0转化,如上程序ADCa的SOC0,SOC1,SOC2转化的同一端口数据,ADCRESULT1和ADCRESULT2数值均有变化但ADCRESULT0无变化,同样情况不唯一,不知问题出在哪里?请求解答,万分感谢




