diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2020-11-20 18:41:49 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2020-11-20 19:03:01 -0700 |
commit | fd763486d875968941c77386e23936e817856c8e (patch) | |
tree | ed85ffe2d6c27b502d06aefa5e63244450bb7028 /02-usart/src/core/irq.c | |
parent | 3b6018348d51c77f53adca90e498d7bf268c91c9 (diff) | |
download | stm32l4-fd763486d875968941c77386e23936e817856c8e.tar.gz stm32l4-fd763486d875968941c77386e23936e817856c8e.tar.bz2 stm32l4-fd763486d875968941c77386e23936e817856c8e.zip |
Finally got a peripheral interrupt!
Diffstat (limited to '02-usart/src/core/irq.c')
-rw-r--r-- | 02-usart/src/core/irq.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/02-usart/src/core/irq.c b/02-usart/src/core/irq.c index c9b93c2..47ad924 100644 --- a/02-usart/src/core/irq.c +++ b/02-usart/src/core/irq.c @@ -1,11 +1,10 @@ #include "core/irq.h" #include "core/gpio.h" +#include "core/nvic.h" #include "arch.h" #include "delay.h" -#ifdef ARCH_STM32L4 - #define IRQ_RESERVED(n) #define IRQ(name, uname_, n) \ void WEAK name () { \ @@ -80,4 +79,14 @@ void unhandled_isr(uint8_t number) } } -#endif +void enable_interrupts(interrupt_set_t* interrupts) +{ + for (int i = 0; i < sizeof(NVIC.ise_r) / sizeof(uint32_t); ++ i) + NVIC.ise_r[i] = interrupts->irqs[i]; +} + +void disable_interrupts(interrupt_set_t* interrupts) +{ + for (int i = 0; i < sizeof(NVIC.ise_r) / sizeof(uint32_t); ++ i) + NVIC.ice_r[i] = interrupts->irqs[i]; +} |