Обновление

This commit is contained in:
cfif 2025-12-15 16:18:40 +03:00
parent cf4376d719
commit b67e53366c
2 changed files with 71 additions and 26 deletions

90
Adcs.c
View File

@ -9,59 +9,70 @@
tAdcs ADCS; tAdcs ADCS;
void Bsp_ADC0_HandleResult(const uint32_t *const pBuffer) { 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 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, .eChannel = ADC_CHANNEL_0,
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1
},
{
.eChannel = ADC_CHANNEL_11,
.eSampleTimeOption = ADC_SAMPLE_TIME_OPTION_1 .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() { void Adcs_Init() {
tAdcs *env = &ADCS; tAdcs *env = &ADCS;
PORT_InitType tInitStruct = {0}; PORT_InitType tInitStruct = {0};
/* PTD16: ADC0_SE10 */ // PTA25: ADC0_SE0
tInitStruct.u32PortPins = PORT_PIN_16; tInitStruct.u32PortPins = PORT_PIN_25;
tInitStruct.uPortPinMux.u32PortPinMode = PORTD_16_ADC0_SE10_CMP0_IN0; tInitStruct.uPortPinMux.u32PortPinMode = PORTA_25_ADC0_SE0;
tInitStruct.bPullEn = false; tInitStruct.bPullEn = false;
tInitStruct.ePullSel = PORT_PULL_UP; tInitStruct.ePullSel = PORT_PULL_UP;
PORT_InitPins(PORT_D, &tInitStruct); PORT_InitPins(PORT_A, &tInitStruct);
/* PTD15: ADC0_SE11 */ // PTD15: ADC0_SE11
tInitStruct.u32PortPins = PORT_PIN_15; // tInitStruct.u32PortPins = PORT_PIN_15;
tInitStruct.uPortPinMux.u32PortPinMode = PORTD_15_ADC0_SE11_CMP0_IN1; // tInitStruct.uPortPinMux.u32PortPinMode = PORTD_15_ADC0_SE11_CMP0_IN1;
tInitStruct.bPullEn = false; // tInitStruct.bPullEn = false;
tInitStruct.ePullSel = PORT_PULL_UP; // tInitStruct.ePullSel = PORT_PULL_UP;
PORT_InitPins(PORT_D, &tInitStruct); // PORT_InitPins(PORT_D, &tInitStruct);
ADC_Initial( ADC_Initial(
&env->vcc, &env->adc_0,
ADC_INSTANCE_0, // ADC_INSTANCE_0, ADC_INSTANCE_1 ADC_INSTANCE_0, // ADC_INSTANCE_0, ADC_INSTANCE_1
DMA_CHANNEL_3, // DMA_CHANNEL_0 .. DMA_CHANNEL_15 DMA_CHANNEL_3, // DMA_CHANNEL_0 .. DMA_CHANNEL_15
DMA2_IRQn, DMA3_IRQn,
0x55, 0xFF,
2, DMA3_IRQn,
s_aAdc0ResultBuf, s_aAdc0ResultBuf,
ADC0_CHN_NUM_EN, ADC0_CHN_NUM_EN,
(ADC_ChannelCfgType *) s_aChannels, (ADC_ChannelCfgType *) s_aChannels0,
0, 0,
0, 0,
@ -70,5 +81,36 @@ void Adcs_Init() {
Bsp_ADC0_HandleResult 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);
} }

7
Adcs.h
View File

@ -8,8 +8,11 @@
#include "AdcFlagchip.h" #include "AdcFlagchip.h"
typedef struct { typedef struct {
tAdcFlagchip vcc; tAdcFlagchip adc_0;
tAdcIO vccIo; tAdcIO adc_0_IO;
tAdcFlagchip adc_1;
tAdcIO adc_1_IO;
} tAdcs; } tAdcs;
extern tAdcs ADCS; extern tAdcs ADCS;