This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Other Parts Discussed in Thread: CC1350

在使用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];
                                     }