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