大家好,现在有这么一个问题想寻求一个思路
我要实现的目的是,100us循环点亮6个LED,每次只有一个亮,在LED亮的时候开启对应对通道的ADC采集数据(每个LED对应一路ADC,开启LED后,ADC的电压会根据环境变化而变化)
问题一、我用定时器触发LED点亮,同时触发ADC采样,这样在初始化的时候就初始化6路ADC,用DMA中断来收集数据,这样做就是要需要收集6路的ADC数据。我在根据需要采集其中的一路
这样的做法就是会收集很多无用数据。
问题二、就是关于DMA中断来的时间问题。如开启6路ADC,缓存BUFF为20*6,例如ADC采样频率239.5,这样第一次DMA中断来的时间大概在2520us,这个时间是正确的。但是如果第二次 DMA中断很快就来了。我理解是DMA也是先进先出的。ADC转换完一次就来一次DMA中断。
请教下各位大神有没有好的方法来实现我的目的的。 如果只配置一路ADC,每次定时器中断来了点亮LED后 切换下一路ADC 这样不知是否可行。这样就是要频繁配置ADC。
|