From b82a90608e497a701e0cb01492340488aa860e49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Waldh=C3=A4usl?= Date: Wed, 4 Oct 2023 05:03:12 -0700 Subject: [PATCH] [stm32] i2c irq priority can be set --- src/modm/platform/i2c/stm32-extended/i2c_master.cpp.in | 10 +++++----- src/modm/platform/i2c/stm32-extended/i2c_master.hpp.in | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modm/platform/i2c/stm32-extended/i2c_master.cpp.in b/src/modm/platform/i2c/stm32-extended/i2c_master.cpp.in index c8c1e50bb0..a32d34b08b 100644 --- a/src/modm/platform/i2c/stm32-extended/i2c_master.cpp.in +++ b/src/modm/platform/i2c/stm32-extended/i2c_master.cpp.in @@ -513,7 +513,7 @@ MODM_ISR(I2C{{ id }}_ER) // ---------------------------------------------------------------------------- void -modm::platform::I2cMaster{{ id }}::initializeWithPrescaler(uint32_t timingRegisterValue) +modm::platform::I2cMaster{{ id }}::initializeWithPrescaler(uint32_t timingRegisterValue, uint8_t isrPriority) { Rcc::enable(); @@ -557,19 +557,19 @@ modm::platform::I2cMaster{{ id }}::initializeWithPrescaler(uint32_t timingRegist %% if shared_irq // Enable Interrupt - NVIC_SetPriority({{ shared_irq }}_IRQn, 10); + NVIC_SetPriority({{ shared_irq }}_IRQn, isrPriority); NVIC_EnableIRQ({{ shared_irq }}_IRQn); %% elif single_interrupt // Enable Interrupt - NVIC_SetPriority(I2C{{ id }}_IRQn, 10); + NVIC_SetPriority(I2C{{ id }}_IRQn, isrPriority); NVIC_EnableIRQ(I2C{{ id }}_IRQn); %% else // Enable Error Interrupt - NVIC_SetPriority(I2C{{ id }}_ER_IRQn, 10); + NVIC_SetPriority(I2C{{ id }}_ER_IRQn, isrPriority); NVIC_EnableIRQ(I2C{{ id }}_ER_IRQn); // Enable Event Interrupt - NVIC_SetPriority(I2C{{ id }}_EV_IRQn, 10); + NVIC_SetPriority(I2C{{ id }}_EV_IRQn, isrPriority); NVIC_EnableIRQ(I2C{{ id }}_EV_IRQn); %% endif diff --git a/src/modm/platform/i2c/stm32-extended/i2c_master.hpp.in b/src/modm/platform/i2c/stm32-extended/i2c_master.hpp.in index 1b4b439747..2239ba5151 100644 --- a/src/modm/platform/i2c/stm32-extended/i2c_master.hpp.in +++ b/src/modm/platform/i2c/stm32-extended/i2c_master.hpp.in @@ -99,12 +99,12 @@ public: */ template static void - initialize() + initialize(uint8_t isrPriority = 10u) { constexpr std::optional timingRegisterValue = calculateTimings(); static_assert(bool(timingRegisterValue), "Could not find a valid clock configuration for the requested baudrate"); - initializeWithPrescaler(timingRegisterValue.value()); + initializeWithPrescaler(timingRegisterValue.value(), isrPriority); } static bool @@ -118,7 +118,7 @@ public: private: static void - initializeWithPrescaler(uint32_t timingRegisterValue); + initializeWithPrescaler(uint32_t timingRegisterValue, uint8_t isrPriority = 10u); %% if shared_irq friend void ::{{ shared_irq }}_IRQHandler();