ADC_FIFO例程有不明白之处如下,请指教:1: KE02的ADC的FIFO队列,也是说先进来转换的通道也要先读取其转换结果,当COCO位置1时,
假如输入FIFO的有6个通道,也就是说明这6个通道都转换完成了。The analog input channel
FIFO is accessed by ADC_SC1[ADCH] bits,给输入FIFO设置要转换哪些通道时,可以通过访问ADC_SC1[ADCH]来实现,程序是这么干的,
ADC_SetChannel(ADC,ADC_CHANNEL_AD22_TEMPSENSOR);
ADC_SetChannel(ADC,ADC_CHANNEL_AD0);
ADC_SetChannel(ADC,ADC_CHANNEL_AD29_VREFH);
ADC_SetChannel(ADC,ADC_CHANNEL_AD30_VREFL);
看了下这些通道的值从0~31,这样每次设置都会改变ADCH的值。那是不是这个
意思,在使用FIFO时,每次调用ADC_SetChannel(ADC,uint8 channel);都会把这个
通道加入FIFO功能模块的输入队列,如果调用6次,那输入队列就有6个通道,
是这样吗?
2,如果是这样,我设置连续转换,那是不是把这个6个通道转换完了,又要重新
调用6次void ADC_SetChannel( ADC_Type *pADC, uint8_t u8Channel );才行?
还是说只要在while(1)前调用了6次就行了。它会重新从已经放入的FIFO的再次开
始转换,如果每次都调用,是不是太浪费CPU,但是我一向FIFO,肯定会把input的
6个通道都出队列的,例程每次都转换完成后又重新调用了ADC_SetChannel,
所有这里有点不太明白,求指点,谢谢啦
|