diff options
| author | Timo Kröger <[email protected]> | 2021-01-17 17:28:46 +0100 |
|---|---|---|
| committer | Timo Kröger <[email protected]> | 2021-01-17 17:28:46 +0100 |
| commit | 9f9d808948858eb6960c7fe37b2a76be9a02bde5 (patch) | |
| tree | 1c8e64d0e4957caa3914a26b133a7c0edc11bf40 | |
| parent | 4e789c663c94c809a41db2d1ea473cc600d78a77 (diff) | |
Fix IRQ numbers
The raw enum values are not always equal to the interrupt number
fixes #23
| -rw-r--r-- | embassy-macros/src/lib.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs index 861406393..cb16f65aa 100644 --- a/embassy-macros/src/lib.rs +++ b/embassy-macros/src/lib.rs | |||
| @@ -115,7 +115,9 @@ pub fn interrupt_declare(item: TokenStream) -> TokenStream { | |||
| 115 | unsafe impl OwnedInterrupt for #name_interrupt { | 115 | unsafe impl OwnedInterrupt for #name_interrupt { |
| 116 | type Priority = Priority; | 116 | type Priority = Priority; |
| 117 | fn number(&self) -> u8 { | 117 | fn number(&self) -> u8 { |
| 118 | Interrupt::#name as u8 | 118 | use cortex_m::interrupt::Nr; |
| 119 | let irq = Interrupt::#name; | ||
| 120 | irq.nr() as u8 | ||
| 119 | } | 121 | } |
| 120 | unsafe fn __handler(&self) -> &'static ::embassy::interrupt::Handler { | 122 | unsafe fn __handler(&self) -> &'static ::embassy::interrupt::Handler { |
| 121 | #[export_name = #name_handler] | 123 | #[export_name = #name_handler] |
