TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1350 ADCBUF如何让实现信道的快速切换

在使用CC1350多信道adc采集,想要实现通道切换必须使用延时,并且延时时长最低为0.01s,这样在通道切换时就花费了很多时间,请问能佛偶实现,通道的快速切换,我现在的代码贴在下方,请问有没有什么好办法。

adcBuf = ADCBuf_open(Board_ADCBUF0, &adcBufParams);
                    continuousConversion[0].arg = NULL;
                    continuousConversion[0].sampleBuffer = sampleBufferOne;  //LWS note u16 accord with sample counts ADCBUFFERSIZE
                    continuousConversion[0].sampleBufferTwo = sampleBufferTwo;
                    continuousConversion[0].samplesRequestedCount = ADCBUFFERSIZE;
                    continuousConversion[0].adcChannel = Board_ADCBUF0CHANNEL2;
                    if (ADCBuf_convert(adcBuf, &continuousConversion[0], 1) !=
                            ADCBuf_STATUS_SUCCESS) {
                            /* Did not start conversion process correctly. */
                            while(1);
                        }
                    usleep(10000);
     for(;q<ADCBUFFERSIZE;q++)
     {
         microVolt[q]=microVoltBuffer[q];
         sum1+=microVoltBuffer[q];
    }
                    ADCBuf_close(adcBuf);
                    adcBuf = ADCBuf_open(Board_ADCBUF0, &adcBufParams);
                    continuousConversion[1].arg = NULL;
                    continuousConversion[1].sampleBuffer = sampleBufferOne;  //LWS note u16 accord with sample counts ADCBUFFERSIZE
                    continuousConversion[1].sampleBufferTwo = sampleBufferTwo;
                    continuousConversion[1].samplesRequestedCount = ADCBUFFERSIZE;
                    continuousConversion[1].adcChannel = Board_ADCBUF0CHANNEL3;
                    if (ADCBuf_convert(adcBuf, &continuousConversion[1], 1) !=
                            ADCBuf_STATUS_SUCCESS) {
                            /* Did not start conversion process correctly. */
                            while(1);
                        }
                    usleep(10000);
                    for(q=0;q<ADCBUFFERSIZE;q++)
                         {
                             microVolt[q+ADCBUFFERSIZE+2]=microVoltBuffer[q];
                             sum2+=microVoltBuffer[q];
                        }
                       
                    ADCBuf_close(adcBuf);
                    adcBuf = ADCBuf_open(Board_ADCBUF0, &adcBufParams);
                    continuousConversion[2].arg = NULL;
                    continuousConversion[2].sampleBuffer = sampleBufferOne;  //LWS note u16 accord with sample counts ADCBUFFERSIZE
                    continuousConversion[2].sampleBufferTwo = sampleBufferTwo;
                    continuousConversion[2].samplesRequestedCount = ADCBUFFERSIZE;
                    continuousConversion[2].adcChannel = Board_ADCBUF0CHANNEL4;
                    if (ADCBuf_convert(adcBuf, &continuousConversion[2], 1) !=
                            ADCBuf_STATUS_SUCCESS) {
                            /* Did not start conversion process correctly. */
                            while(1);
                        }
                    usleep(10000);
                    for(q=0;q<ADCBUFFERSIZE;q++)
                    {
                        microVolt[q+(ADCBUFFERSIZE+2)*2]=microVoltBuffer[q];
                        sum3+=microVoltBuffer[q];
                   }
       
                    ADCBuf_close(adcBuf);
                    adcBuf = ADCBuf_open(Board_ADCBUF0, &adcBufParams);
                    continuousConversion[3].arg = NULL;
                    continuousConversion[3].sampleBuffer = sampleBufferOne;  //LWS note u16 accord with sample counts ADCBUFFERSIZE
                    continuousConversion[3].sampleBufferTwo = sampleBufferTwo;
                    continuousConversion[3].samplesRequestedCount = ADCBUFFERSIZE;
                    continuousConversion[3].adcChannel = Board_ADCBUF0CHANNEL5;
                    if (ADCBuf_convert(adcBuf, &continuousConversion[3], 1) !=
                            ADCBuf_STATUS_SUCCESS) {
                            /* Did not start conversion process correctly. */
                            while(1);
                        }
                    usleep(10000);
                    for(q=0;q<ADCBUFFERSIZE;q++)
                                      {
                                          microVolt[q+(ADCBUFFERSIZE+2)*3]=microVoltBuffer[q];
                                          sum4+=microVoltBuffer[q];
                                     }
                                     
Kevin Qiu1:

已在另一帖回复你

赞(0)
未经允许不得转载:TI中文支持网 » CC1350 ADCBUF如何让实现信道的快速切换
分享到: 更多 (0)