除了不间断的自动排序模式外,排序器还可以工作在启动/停止模式,并可由时间上分离的多个SOC触发源同步。该模式和连续转换类似,但是在完成了第一次转换后,排序器可被重新触发而不用在ISR中复位到初始的CONV00状态。所以当一次排序转换结束后,排序器停在当前状态。该模式下寄存器ADCTRL1中的CONT RUN位必须设置成0,即禁止连续转换。
【例5-2】 排序器的启动/停止操作。
如图5-3所示,要求触发1(定时器下溢即计数到0)到来时,开始3个自动转换(I1、I2、I3)。触发2(定时器周期匹配即计数达到周期值)到来时,开始另外3个自动转换(V1、V2、V3)。触发事件1、2在时间上相差25μs,由事件管理器A提供。这里仅用到SEQ1。
图5-3 事件管理器触发排序转换的实例
这里MAX CONV1设置成2,ADC输入通道选择控制寄存器CHSELSEQn按表5-3设置。
表5-3 例5-2寄存器CHSELSEQn中的数值表(www.xing528.com)
在复位和初始化后,SEQ1等待触发。当第一个触发到来时,先执行通道选择值为CONV00(I1)、CONV01(I2)、CONV02(I3)的3个A-D转换,然后SEQ1在现有状态下等待第二个触发。25μs后,第二个触发信号到来,接着执行通道选择值为CONV03(V1)、CONV04(V2)、CONV05(V3)的3个A-D转换。
两次转换中,MAX CONV1的值都自动装载进SEQ CNTRn中。如果第二次触发时要完成的A-D转换的数量和第一次不同,则需要在第二次触发到来前的适当时间改变MAXCONV1的值,否则前面的值将继续使用。可以在中断服务程序(ISR)中修改MAX CONV1的值。
在第二次A-D转换结束时,ADC结果寄存器中的结果见表5-4。
表5-4 例5-2 ADC转换结果寄存器中的结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。