BaseFlight ADC - FabLabSeoul/WingProject GitHub Wiki
์คํ์์ค Baseflight drv_adc.c,h ํ์ผ์ ๋ถ์ํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ค.
Baseflight์ drv_adc.c,h ํ์ผ์ baseflight ์ ์ฉ adc ์ฝ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌํ ๋ ์์ค๊ฐ ์๋๋ค.
drv_adc ํค๋ ํ์ผ์ด๋ค.
#pragma once
typedef enum {
ADC_BATTERY = 0,
ADC_EXTERNAL_PAD = 1,
ADC_EXTERNAL_CURRENT = 2,
ADC_RSSI = 3,
ADC_CHANNEL_MAX = 4
} AdcChannel;
typedef struct drv_adc_config_t {
uint8_t powerAdcChannel; // which channel used for current monitor, allowed PA1, PB1 (ADC_Channel_1, ADC_Channel_9)
uint8_t rssiAdcChannel; // which channel used for analog-rssi (RC-filter), allowed PA1, PB1 (ADC_Channel_1, ADC_Channel_9)
} drv_adc_config_t;
void adcInit(drv_adc_config_t *init);
uint16_t adcGetChannel(uint8_t channel);
ํค๋ ํ์ผ์์ ๋ณด์ด๋ฏ์ด, drv_adc๋ ๋ฐง๋ฐ๋ฆฌ์ ๋ค๋ฅธ ์ฃผ๋ณ๊ธฐ๊ธฐ๋ค์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด ์ฐ์ธ๋ค. A/D์ปจ๋ฒํฐ์ DMA๋ฅผ ์ด์ฉํด์ ์ฌ๋ฌ ์ฑ๋๋ก A/D๋ณํ์ ํ๊ณ ์๋ค.
drv_adc_config_t ๊ตฌ์กฐ์ฒด์ powerAdcChannel
, rssiAdcChannel
๋ณ์๋ ๋ชจ๋ 0 ์ผ๋ก ์ด๊ธฐํ ๋ ์ํ๋ผ, ํ๋ก๊ทธ๋จ์์ ์๋ฌด ์ํฅ์ ๋ฏธ์น์ง ๋ชปํ๋ค.