#include <airturbo/blower/blower_adc.h>
//#define ADCBUFFERSIZE 500
ADCBuf_Handle adcbuf;
ADCBuf_Conversion conversion = {0};
uint16_t sampleBufferOne[ADCBUFFERSIZE];
//uint16_t sampleBufferTwo[ADCBUFFERSIZE];
uint32_t microvoltBuffer[ADCBUFFERSIZE];
//uint32_t buffersCompletedCounter = 0;
// ADCBuf callback function
void adcBufCallbackFxn(ADCBuf_Handle handle, ADCBuf_Conversion *conversion,
void *buffer, uint32_t channel);
extern void adcbuf_init(void)
{
ADCBuf_Params params;
ADCBufCC26XX_ParamsExtension customParams;
ADCBuf_init();
ADCBuf_Params_init(¶ms);
params.returnMode = ADCBuf_RETURN_MODE_CALLBACK;
params.recurrenceMode = ADCBuf_RECURRENCE_MODE_ONE_SHOT;
params.callbackFxn = adcBufCallbackFxn;
params.samplingFrequency = 100000;
customParams.samplingDuration = ADCBufCC26XX_SAMPLING_DURATION_2P7_US;
customParams.refSource = ADCBufCC26XX_FIXED_REFERENCE;
customParams.samplingMode = ADCBufCC26XX_SAMPING_MODE_SYNCHRONOUS;
customParams.inputScalingEnabled = true;
params.custom = &customParams;
adcbuf = ADCBuf_open(Board_ADCBUF0, ¶ms);
conversion.adcChannel = Board_ADCBUF0CHANNEL7;
conversion.sampleBuffer = sampleBufferOne;
//conversion.sampleBufferTwo = sampleBufferTwo;
conversion.samplesRequestedCount = ADCBUFFERSIZE;
}
extern void adcbuf_convert(void)
{
if (ADCBuf_convert(adcbuf, &conversion, 1) != ADCBuf_STATUS_SUCCESS)
{
// ADCBuf_convert() failed
}
}
extern void adcbuf_convertCancel(void)
{
if (ADCBuf_convertCancel(adcbuf)!= ADCBuf_STATUS_SUCCESS)
{
// ADCBuf_convert() failed
}
}
void adcBufCallbackFxn(ADCBuf_Handle handle, ADCBuf_Conversion *conversion,
void *buffer, uint32_t channel)
{
//malloc();
// Adjust raw ADC values and convert them to microvolts
ADCBuf_adjustRawValues(handle, buffer, ADCBUFFERSIZE,
channel);
ADCBuf_convertAdjustedToMicroVolts(handle, channel,
buffer, microvoltBuffer, ADCBUFFERSIZE);
/* for(int i = 0; i < ADCBUFFERSIZE ; i++)
{
Log_info2("microvoltBuffer[%d]:%u ",
i,(unsigned int)microvoltBuffer[i]);
}*/
Log_info0("ADC DONE");
}
我根据CC2640R2F的官方例程编写了ADC连续采样的代码,我的要求是在5ms内采500个信号,ADC的采样频率设置为100000,缓冲区的信号个数为500,编译成功系统可以运行,但蓝牙掉线,当我将采集个数改成300后,系统和蓝牙都可以正常运行,有没有办法能够既能够让蓝牙正常运行,系统也能正常运行