Code: Select all
const size_t kADCSampleBufferDepth = 16;
adcsample_t sADCBuffer[kADCSampleBufferDepth][2];
void
loop()
{
mADCGroup.circular = true;
mADCGroup.num_channels = 2;
mADCGroup.end_cb = NULL;
mADCGroup.error_cb = NULL;
mADCGroup.channelselects = (1 << 4) | (1 << 7);
mADCGroup.trigger = ADC_TRIGGER_SOFTWARE;
mADCGroup.frequency = 0;
while (looping)
{
// Read the ADCs…
adcConvert(&ADCD1, &mADCGroup, (adcsample_t*) sADCBuffer, kADCSampleBufferDepth);
// Average the samples…
uint16_t rawTemp = 0;
uint16_t rawBatt = 0;
for (size_t i = 0; i < kADCSampleBufferDepth; ++i)
{
rawTemp += sADCBuffer[i][0];
rawBatt += sADCBuffer[i][1];
sDebug.log("Sample %u: %5u %6u %5u %6u\n",
i,
sADCBuffer[i][0], rawTemp,
sADCBuffer[i][1], rawBatt);
}
rawTemp >>= 2;
rawBatt >>= 2;
// do stuff, sleep, etc.
}
}