From b67e53366c426fe89a1f91173bfd3a7930906967 Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 15 Dec 2025 16:18:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Adcs.c | 90 ++++++++++++++++++++++++++++++++++++++++++---------------- Adcs.h | 7 +++-- 2 files changed, 71 insertions(+), 26 deletions(-) diff --git a/Adcs.c b/Adcs.c index 4e38146..825364e 100644 --- a/Adcs.c +++ b/Adcs.c @@ -9,59 +9,70 @@ tAdcs ADCS; void Bsp_ADC0_HandleResult(const uint32_t *const pBuffer) { - Get_ADC_Result(ADCS.vccIo.env); + Get_ADC_Result(ADCS.adc_0_IO.env); } -#define ADC0_CHN_NUM_EN 2 +void Bsp_ADC1_HandleResult(const uint32_t *const pBuffer) { + Get_ADC_Result(ADCS.adc_1_IO.env); +} + +#define ADC0_CHN_NUM_EN 1 +#define ADC1_CHN_NUM_EN 1 static uint32_t s_aAdc0ResultBuf[ADC0_CHN_NUM_EN] = {0U}; -static const ADC_ChannelCfgType s_aChannels[ADC0_CHN_NUM_EN] = +static uint32_t s_aAdc1ResultBuf[ADC1_CHN_NUM_EN] = {0U}; + + +static const ADC_ChannelCfgType s_aChannels0[ADC0_CHN_NUM_EN] = { { - .eChannel = ADC_CHANNEL_10, - .eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1 - }, - { - .eChannel = ADC_CHANNEL_11, + .eChannel = ADC_CHANNEL_0, .eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1 } }; +static const ADC_ChannelCfgType s_aChannels1[ADC1_CHN_NUM_EN] = + { + { + .eChannel = ADC_CHANNEL_25, + .eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1 + } + }; void Adcs_Init() { tAdcs *env = &ADCS; PORT_InitType tInitStruct = {0}; - /* PTD16: ADC0_SE10 */ - tInitStruct.u32PortPins = PORT_PIN_16; - tInitStruct.uPortPinMux.u32PortPinMode = PORTD_16_ADC0_SE10_CMP0_IN0; + // PTA25: ADC0_SE0 + tInitStruct.u32PortPins = PORT_PIN_25; + tInitStruct.uPortPinMux.u32PortPinMode = PORTA_25_ADC0_SE0; tInitStruct.bPullEn = false; tInitStruct.ePullSel = PORT_PULL_UP; - PORT_InitPins(PORT_D, &tInitStruct); + PORT_InitPins(PORT_A, &tInitStruct); - /* PTD15: ADC0_SE11 */ - tInitStruct.u32PortPins = PORT_PIN_15; - tInitStruct.uPortPinMux.u32PortPinMode = PORTD_15_ADC0_SE11_CMP0_IN1; - tInitStruct.bPullEn = false; - tInitStruct.ePullSel = PORT_PULL_UP; - PORT_InitPins(PORT_D, &tInitStruct); + // PTD15: ADC0_SE11 +// tInitStruct.u32PortPins = PORT_PIN_15; +// tInitStruct.uPortPinMux.u32PortPinMode = PORTD_15_ADC0_SE11_CMP0_IN1; +// tInitStruct.bPullEn = false; +// tInitStruct.ePullSel = PORT_PULL_UP; +// PORT_InitPins(PORT_D, &tInitStruct); ADC_Initial( - &env->vcc, + &env->adc_0, ADC_INSTANCE_0, // ADC_INSTANCE_0, ADC_INSTANCE_1 DMA_CHANNEL_3, // DMA_CHANNEL_0 .. DMA_CHANNEL_15 - DMA2_IRQn, - 0x55, - 2, + DMA3_IRQn, + 0xFF, + DMA3_IRQn, s_aAdc0ResultBuf, ADC0_CHN_NUM_EN, - (ADC_ChannelCfgType *) s_aChannels, + (ADC_ChannelCfgType *) s_aChannels0, 0, 0, @@ -70,5 +81,36 @@ void Adcs_Init() { Bsp_ADC0_HandleResult ); - env->vccIo = vAdcGetIo(&env->vcc); + env->adc_0_IO = vAdcGetIo(&env->adc_0); + + // PTB9: ADC1_SE25 + tInitStruct.u32PortPins = PORT_PIN_9; + tInitStruct.uPortPinMux.u32PortPinMode = PORTB_9_ADC1_SE25; + tInitStruct.bPullEn = false; + tInitStruct.ePullSel = PORT_PULL_UP; + PORT_InitPins(PORT_B, &tInitStruct); + + ADC_Initial( + &env->adc_1, + ADC_INSTANCE_1, // ADC_INSTANCE_0, ADC_INSTANCE_1 + + DMA_CHANNEL_4, // DMA_CHANNEL_0 .. DMA_CHANNEL_15 + + DMA4_IRQn, + 0xFF, + DMA4_IRQn, + + s_aAdc1ResultBuf, + + ADC1_CHN_NUM_EN, + (ADC_ChannelCfgType *) s_aChannels1, + + 0, + 0, + 0, + + Bsp_ADC1_HandleResult + ); + + env->adc_1_IO = vAdcGetIo(&env->adc_1); } diff --git a/Adcs.h b/Adcs.h index a8651f3..0eca67c 100644 --- a/Adcs.h +++ b/Adcs.h @@ -8,8 +8,11 @@ #include "AdcFlagchip.h" typedef struct { - tAdcFlagchip vcc; - tAdcIO vccIo; + tAdcFlagchip adc_0; + tAdcIO adc_0_IO; + + tAdcFlagchip adc_1; + tAdcIO adc_1_IO; } tAdcs; extern tAdcs ADCS;