Part Number: CC2640R2F
Tool/software:
Hi,
I am using SDKv5.30 adcbufcontinuous drivers example program. I modified the adcBufCallback() to copy the contents completedADCBuffer[] to rawadcbuffer[]. See code change below.
void adcBufCallback(ADCBuf_Handle handle, ADCBuf_Conversion *conversion,
void *completedADCBuffer, uint32_t completedChannel)
{
uint_fast16_t i;
uint_fast16_t uartTxBufferOffset = 0;
memcpy(rawadcbuffer, completedADCBuffer, ADCBUFFERSIZE);
/* Adjust raw ADC values and convert them to microvolts */
ADCBuf_adjustRawValues(handle, completedADCBuffer, 2*ADCBUFFERSIZE,
completedChannel);
memcpy(rawadcbuffer, completedADCBuffer, ADCBUFFERSIZE);
ADCBuf_convertAdjustedToMicroVolts(handle, completedChannel,
completedADCBuffer, microVoltBuffer, ADCBUFFERSIZE);
/* Start with a header message. */
uartTxBufferOffset = snprintf(uartTxBuffer,
UARTBUFFERSIZE - uartTxBufferOffset, "\r\nBuffer %u finished.",
(unsigned int)buffersCompletedCounter++);
/* Write raw adjusted values to the UART buffer if there is room. */
uartTxBufferOffset += snprintf(uartTxBuffer + uartTxBufferOffset,
UARTBUFFERSIZE - uartTxBufferOffset, "\r\nRaw Buffer: ");
for (i = 0; i < ADCBUFFERSIZE && uartTxBufferOffset < UARTBUFFERSIZE; i++) {
uartTxBufferOffset += snprintf(uartTxBuffer + uartTxBufferOffset,
UARTBUFFERSIZE - uartTxBufferOffset, "%u,",
*(((uint16_t *)completedADCBuffer) + i));
}
/* Write microvolt values to the UART buffer if there is room. */
if (uartTxBufferOffset < UARTBUFFERSIZE) {
uartTxBufferOffset += snprintf(uartTxBuffer + uartTxBufferOffset,
UARTBUFFERSIZE - uartTxBufferOffset, "\r\nMicrovolts: ");
for (i = 0; i < ADCBUFFERSIZE && uartTxBufferOffset < UARTBUFFERSIZE; i++) {
uartTxBufferOffset += snprintf(uartTxBuffer + uartTxBufferOffset,
UARTBUFFERSIZE - uartTxBufferOffset, "%u,",
(unsigned int)microVoltBuffer[i]);
}
}
/*
* Ensure we don't write outside the buffer.
* Append a newline after the data.
*/
if (uartTxBufferOffset < UARTBUFFERSIZE) {
uartTxBuffer[uartTxBufferOffset++] = '\n';
}
else {
uartTxBuffer[UARTBUFFERSIZE-1] = '\n';
}
/* Display the data via UART */
UART_write(uart, uartTxBuffer, uartTxBufferOffset);
}
Here is the rawadcbuffer[]. There are a lot of zeroes. Only 25 ADC readings out of 100.

-kel