/* * 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