Skip to content

Commit 734de07

Browse files
wald-zatsalkinium
authored andcommitted
[stm32] i2c irq priority can be set
1 parent 9496060 commit 734de07

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/modm/platform/i2c/stm32-extended/i2c_master.cpp.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ MODM_ISR(I2C{{ id }}_ER)
513513
// ----------------------------------------------------------------------------
514514

515515
void
516-
modm::platform::I2cMaster{{ id }}::initializeWithPrescaler(uint32_t timingRegisterValue)
516+
modm::platform::I2cMaster{{ id }}::initializeWithPrescaler(uint32_t timingRegisterValue, uint8_t isrPriority)
517517
{
518518
Rcc::enable<Peripheral::I2c{{id}}>();
519519

@@ -557,19 +557,19 @@ modm::platform::I2cMaster{{ id }}::initializeWithPrescaler(uint32_t timingRegist
557557

558558
%% if shared_irq
559559
// Enable Interrupt
560-
NVIC_SetPriority({{ shared_irq }}_IRQn, 10);
560+
NVIC_SetPriority({{ shared_irq }}_IRQn, isrPriority);
561561
NVIC_EnableIRQ({{ shared_irq }}_IRQn);
562562
%% elif single_interrupt
563563
// Enable Interrupt
564-
NVIC_SetPriority(I2C{{ id }}_IRQn, 10);
564+
NVIC_SetPriority(I2C{{ id }}_IRQn, isrPriority);
565565
NVIC_EnableIRQ(I2C{{ id }}_IRQn);
566566
%% else
567567
// Enable Error Interrupt
568-
NVIC_SetPriority(I2C{{ id }}_ER_IRQn, 10);
568+
NVIC_SetPriority(I2C{{ id }}_ER_IRQn, isrPriority);
569569
NVIC_EnableIRQ(I2C{{ id }}_ER_IRQn);
570570

571571
// Enable Event Interrupt
572-
NVIC_SetPriority(I2C{{ id }}_EV_IRQn, 10);
572+
NVIC_SetPriority(I2C{{ id }}_EV_IRQn, isrPriority);
573573
NVIC_EnableIRQ(I2C{{ id }}_EV_IRQn);
574574
%% endif
575575

src/modm/platform/i2c/stm32-extended/i2c_master.hpp.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,12 @@ public:
9999
*/
100100
template<class SystemClock, baudrate_t baudrate=kBd(100), percent_t tolerance=pct(5)>
101101
static void
102-
initialize()
102+
initialize(uint8_t isrPriority = 10u)
103103
{
104104
constexpr std::optional<uint32_t> timingRegisterValue = calculateTimings<SystemClock, baudrate, tolerance>();
105105
static_assert(bool(timingRegisterValue), "Could not find a valid clock configuration for the requested baudrate");
106106

107-
initializeWithPrescaler(timingRegisterValue.value());
107+
initializeWithPrescaler(timingRegisterValue.value(), isrPriority);
108108
}
109109

110110
static bool
@@ -118,7 +118,7 @@ public:
118118

119119
private:
120120
static void
121-
initializeWithPrescaler(uint32_t timingRegisterValue);
121+
initializeWithPrescaler(uint32_t timingRegisterValue, uint8_t isrPriority = 10u);
122122

123123
%% if shared_irq
124124
friend void ::{{ shared_irq }}_IRQHandler();

0 commit comments

Comments
 (0)