1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 08:15:30 +03:00
betaflight/src/main/drivers/adc.c
blckmn 17facbea84 sdcard dma config, adc config, bluejayf4 hardware revision
Moved ADC to configuration stored in masterConfig.
 - can remove features for vbat etc in future (perhaps param groups)
 - allows adc to be turned off completely (freeing up dma)

Added feature SDCARD
 - enables it to be turned off.
 - allows for DMA to be turned off (set sdcard_dma=OFF)

Fixed hardware revision to allow BJF4 mini to use the same target (no need for an additional target).
2016-11-13 14:25:33 +11:00

73 lines
1.8 KiB
C

/*
* 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 <http://www.gnu.org/licenses/>.
*/
#include <stdbool.h>
#include <stdint.h>
#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