/** * Timer callback for DC/DC negative feedback loop. * This is an internal function. */ static void Atomizer_TimerCallback(uint32_t unused) { if(Atomizer_curState == POWEROFF) { // Powered off, nothing to do return; } // Schedule conversion (on reserved slot, if needed) // We don't care if it fails, we'll call it again ADC_ReadAsyncEx(ADC_MODULE_VATM, Atomizer_NegativeFeedback, 0, 1); }
uint16_t ADC_Read(uint32_t moduleNum) { volatile int32_t result = -1; // Keep trying until we get a slot while(!ADC_ReadAsyncEx(moduleNum, ADC_SyncCallback, (uint32_t) &result, 0)); // Wait until conversion is complete while(result == -1); return result; }
uint8_t ADC_ReadAsync(uint32_t moduleNum, ADC_Callback_t callback, uint32_t callbackData) { return ADC_ReadAsyncEx(moduleNum, callback, callbackData, 0); }