File tree Expand file tree Collapse file tree 14 files changed +448
-0
lines changed
Expand file tree Collapse file tree 14 files changed +448
-0
lines changed Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::atsam3x8e {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::atsam4s2b {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::lpc1752 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::lpc1754 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::lpc1756 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::lpc1759 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::lpc1788 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -70,6 +70,38 @@ namespace klib::lpc55s66 {
7070 static void disable_irq () {
7171 __disable_irq ();
7272 }
73+
74+ /* *
75+ * @brief Set the priority of a interrupt
76+ *
77+ * @tparam Irq
78+ */
79+ template <irq::arm_vector Irq, uint8_t Priority>
80+ static void interrupt_priority () {
81+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
82+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
83+
84+ // set the priority
85+ NVIC_SetPriority (
86+ static_cast <IRQn_Type>(
87+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
88+ Priority
89+ );
90+ }
91+
92+ /* *
93+ * @brief Set the priority of a interrupt
94+ *
95+ * @tparam Irq
96+ */
97+ template <uint32_t Irq, uint8_t Priority>
98+ static void interrupt_priority () {
99+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
100+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
101+
102+ // set the priority
103+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
104+ }
73105}
74106
75107#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::lpc802 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
Original file line number Diff line number Diff line change @@ -61,6 +61,38 @@ namespace klib::max32625 {
6161 static void disable_irq () {
6262 __disable_irq ();
6363 }
64+
65+ /* *
66+ * @brief Set the priority of a interrupt
67+ *
68+ * @tparam Irq
69+ */
70+ template <irq::arm_vector Irq, uint8_t Priority>
71+ static void interrupt_priority () {
72+ static_assert (static_cast <uint32_t >(Irq) >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
73+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
74+
75+ // set the priority
76+ NVIC_SetPriority (
77+ static_cast <IRQn_Type>(
78+ static_cast <uint32_t >(Irq) - static_cast <uint32_t >(irq::arm_vector::count)),
79+ Priority
80+ );
81+ }
82+
83+ /* *
84+ * @brief Set the priority of a interrupt
85+ *
86+ * @tparam Irq
87+ */
88+ template <uint32_t Irq, uint8_t Priority>
89+ static void interrupt_priority () {
90+ static_assert (Irq >= static_cast <uint32_t >(irq::arm_vector::count), " Invalid IRQ given to set priority" );
91+ static_assert (Priority < (1U << __NVIC_PRIO_BITS), " Invalid priority given to set priority" );
92+
93+ // set the priority
94+ NVIC_SetPriority (static_cast <IRQn_Type>(Irq - static_cast <uint32_t >(irq::arm_vector::count)), Priority);
95+ }
6496}
6597
6698#endif
You can’t perform that action at this time.
0 commit comments