diff --git a/arch/arm/src/stm32/stm32_hrtim.c b/arch/arm/src/stm32/stm32_hrtim.c index 717321ccce..70f922a91e 100644 --- a/arch/arm/src/stm32/stm32_hrtim.c +++ b/arch/arm/src/stm32/stm32_hrtim.c @@ -57,8 +57,6 @@ #if defined(CONFIG_STM32_STM32F33XX) -#warning "HRTIM UNDER DEVELOPMENT !" - #if defined(CONFIG_STM32_HRTIM_TIMA_PWM) || defined(CONFIG_STM32_HRTIM_TIMA_DAC) || \ defined(CONFIG_STM32_HRTIM_TIMA_CAP) || defined(CONFIG_STM32_HRTIM_TIMA_IRQ) || \ defined(CONFIG_STM32_HRTIM_TIMA_DT) || defined(CONFIG_STM32_HRTIM_TIMA_CHOP) @@ -231,11 +229,6 @@ /* HRTIM default configuration **********************************************/ -#ifndef HRTIM_MASTER_PRESCALER -# warning "HRTIM_MASTER_PRESCALER is not set. Set the default value HRTIM_PRESCALER_2" -# define HRTIM_MASTER_PRESCALER HRTIM_PRESCALER_2 -#endif - #if defined(CONFIG_STM32_HRTIM_MASTER) && !defined(HRTIM_MASTER_MODE) # warning "HRTIM_MASTER_MODE is not set. Set the default value 0" # define HRTIM_MASTER_MODE 0 @@ -3604,8 +3597,46 @@ errout: static uint16_t hrtim_deadtime_get(FAR struct hrtim_dev_s *dev, uint8_t timer, uint8_t dt) { -#warning missing logic - return 0; + FAR struct stm32_hrtim_s *priv = (FAR struct stm32_hrtim_s *)dev->hd_priv; + uint16_t regval = 0; + uint32_t shift = 0; + uint32_t mask = 0; + + /* Get shift value */ + + switch (dt) + { + case HRTIM_DT_EDGE_RISING: + { + shift = HRTIM_TIMDT_DTR_SHIFT; + mask = HRTIM_TIMDT_DTR_MASK; + break; + } + + case HRTIM_DT_EDGE_FALLING: + { + shift = HRTIM_TIMDT_DTF_SHIFT; + mask = HRTIM_TIMDT_DTF_MASK; + break; + } + + default: + { + regval = 0; + goto errout; + } + } + + /* Get Deadtime Register */ + + regval = hrtim_tim_getreg(priv, timer, STM32_HRTIM_TIM_DTR_OFFSET); + + /* Get Deadtime value */ + + regval = (regval & mask) >> shift; + +errout: + return regval; } /**************************************************************************** diff --git a/arch/arm/src/stm32/stm32f33xxx_adc.c b/arch/arm/src/stm32/stm32f33xxx_adc.c index 3369b2da56..77d326ccb5 100644 --- a/arch/arm/src/stm32/stm32f33xxx_adc.c +++ b/arch/arm/src/stm32/stm32f33xxx_adc.c @@ -119,6 +119,10 @@ # define ADC2_HAVE_JEXTSEL #endif +#if defined(CONFIG_STM32_ADC_NOIRQ) && defined(ADC_HAVE_DMA) +# error "ADC DMA support requires common ADC interrupts" +#endif + /* RCC reset ****************************************************************/ #define STM32_RCC_RSTR STM32_RCC_AHBRSTR @@ -162,10 +166,13 @@ */ #define ADC_MAX_CHANNELS_DMA 16 +#define ADC_MAX_CHANNELS_NOIRQ 16 #define ADC_MAX_CHANNELS_NODMA 1 -#ifdef ADC_HAVE_DMA +#if defined(ADC_HAVE_DMA) # define ADC_REG_MAX_SAMPLES ADC_MAX_CHANNELS_DMA +#elif defined(CONFIG_STM32_ADC_NOIRQ) +# define ADC_REG_MAX_SAMPLES ADC_MAX_CHANNELS_NOIRQ #else # define ADC_REG_MAX_SAMPLES ADC_MAX_CHANNELS_NODMA #endif @@ -1911,7 +1918,7 @@ static uint32_t adc_sqrbits(FAR struct stm32_dev_s *priv, int first, int last, i < priv->rnchannels && i < last; i++, offset += ADC_SQ_OFFSET) { - bits |= (uint32_t)priv->r_chanlist[i] << offset; + bits |= ((uint32_t)priv->r_chanlist[i]) << offset; } return bits; diff --git a/configs/stm32f334-disco/include/board.h b/configs/stm32f334-disco/include/board.h index c138e01cab..00fc30ad11 100644 --- a/configs/stm32f334-disco/include/board.h +++ b/configs/stm32f334-disco/include/board.h @@ -281,6 +281,8 @@ #define HRTIM_TIMA_PRESCALER HRTIM_PRESCALER_1 #define HRTIM_TIMA_MODE HRTIM_MODE_CONT +#define HRTIM_TIMA_UPDATE 0 +#define HRTIM_TIMA_RESET 0 #define HRTIM_TIMA_CH1_SET HRTIM_OUT_SET_NONE #define HRTIM_TIMA_CH1_RST HRTIM_OUT_RST_NONE @@ -299,6 +301,8 @@ #define HRTIM_TIMB_PRESCALER HRTIM_PRESCALER_1 #define HRTIM_TIMB_MODE HRTIM_MODE_CONT +#define HRTIM_TIMB_UPDATE 0 +#define HRTIM_TIMB_RESET 0 #define HRTIM_TIMB_CH1_SET HRTIM_OUT_SET_NONE #define HRTIM_TIMB_CH1_RST HRTIM_OUT_RST_NONE diff --git a/configs/stm32f334-disco/src/stm32_smps.c b/configs/stm32f334-disco/src/stm32_smps.c index 3a7dc3c26e..7fa0fe2436 100644 --- a/configs/stm32f334-disco/src/stm32_smps.c +++ b/configs/stm32f334-disco/src/stm32_smps.c @@ -68,8 +68,6 @@ #if defined(CONFIG_EXAMPLES_SMPS) && defined(CONFIG_DRIVERS_SMPS) -#warning "STM32F334-DISCO buck-boost converter example under development!" - #ifndef CONFIG_ARCH_HIPRI_INTERRUPT # error CONFIG_ARCH_HIPRI_INTERRUPT is required #endif @@ -643,25 +641,21 @@ static int smps_state_get(FAR struct smps_dev_s *dev, static int smps_fault_set(FAR struct smps_dev_s *dev, uint8_t fault) { -#warning "missing logic" return OK; } static int smps_fault_get(FAR struct smps_dev_s *dev, FAR uint8_t *fault) { -#warning "missing logic" return OK; } static int smps_fault_clean(FAR struct smps_dev_s *dev, uint8_t fault) { -#warning "missing logic" return OK; } static int smps_ioctl(FAR struct smps_dev_s *dev, int cmd, unsigned long arg) { -#warning "missing logic" return OK; }