在使用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;
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];
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;
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];
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;
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];
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];
for(q=0;q<ADCBUFFERSIZE;q++)
{
microVolt[q+(ADCBUFFERSIZE+2)*3]=microVoltBuffer[q];
sum4+=microVoltBuffer[q];
}