/*
* This file is part of Cleanflight.
*
* Cleanflight is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Cleanflight is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Cleanflight. If not, see .
*/
#include
#include
#include "platform.h"
#include "build/build_config.h"
#include "build/debug.h"
#include "system.h"
#include "adc.h"
#include "adc_impl.h"
#include "common/utils.h"
//#define DEBUG_ADC_CHANNELS
#ifdef USE_ADC
adcOperatingConfig_t adcOperatingConfig[ADC_CHANNEL_COUNT];
volatile uint16_t adcValues[ADC_CHANNEL_COUNT];
uint8_t adcChannelByTag(ioTag_t ioTag)
{
for (uint8_t i = 0; i < ARRAYLEN(adcTagMap); i++) {
if (ioTag == adcTagMap[i].tag)
return adcTagMap[i].channel;
}
return 0;
}
uint16_t adcGetChannel(uint8_t channel)
{
#ifdef DEBUG_ADC_CHANNELS
if (adcConfig[0].enabled) {
debug[0] = adcValues[adcConfig[0].dmaIndex];
}
if (adcConfig[1].enabled) {
debug[1] = adcValues[adcConfig[1].dmaIndex];
}
if (adcConfig[2].enabled) {
debug[2] = adcValues[adcConfig[2].dmaIndex];
}
if (adcConfig[3].enabled) {
debug[3] = adcValues[adcConfig[3].dmaIndex];
}
#endif
return adcValues[adcOperatingConfig[channel].dmaIndex];
}
#else
uint16_t adcGetChannel(uint8_t channel)
{
UNUSED(channel);
return 0;
}
#endif