双排序语句:AdcRegs.ADCTRL1.bit.SQE_CASC=0
1)当ADC工作在双排序工作方式下,2个8状态排序器SEQ1和SEQ2彼此独立,由各自的触发源触发转换。
2)在一次排序过程中,SEQ1/SEQ2能对8个任意通道进行排序转换。
3)每个排序器的最多转换通道个数依然受MAX_CONVn控制。
4)控制寄存器ADCTRL1中的连续运行状态位CONT_RUN置1时,转换序列重新自动开始;CONT_RUN没有被置位时,排序指针停留在最后的状态(排序器SEQn 状态停留在最后的状态,如CONV06).
5)不太理解:控制寄存器ADCTRL2中的RST SEQn位可以将排序器SEQn手动复位,这样SEQ1的状态复位到CONV00,SEQ2的状态复位到CONV08,这一特点在启动/停止排序器操作时十分有用。
一、双排序器顺序采样
使用排序器SEQ1完成7个通道的模数转换,分别是模拟输入A2、A3、A2、A3、A6、A7、B4。
//配置ADC
AdcRegs.ADCTRL1.bit.SQE_CASC=0; //设置双排序器操作方式
AdcRegs.ADCTRL3.bit.SMODE_SEL=0; ///设置顺序采样模式
AdcRegs.ADCTEL3.bit.ADCCLKPS=2; //HSPCLK四分频
AdcRegs.ADCTRL1.bit.CONT_RUN=1; //连续运行,转换序列重新开始
AdcRegs.ADCTRL1.bit.CPS=0; //预定标系数设为1
AdcRegs.ADCMAXCONV.bit.MAX_CONV1=0x6;//最大输入通道数为7
AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x2; //设置ADCINA2为第一个转换
AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x3; //设置ADCINA3为第二个转换
AdcRegs.ADCCHSELSEQ1.bit.CONV02=0x2; //设置ADCINA2为第三个转换