Tool to change all interrupt priorities at once. Check the header file for supported mbed targets.

Dependents:   CC3000_Hostdriver KL25Z_FFT_Demo cc3000_hello_world_demo cc3000_simple_socket_demo ... more

Example

#include "NVIC_set_all_priorities.h"
int main()
{
    NVIC_set_all_irq_priorities(3);
    .....
}

Files at this revision

API Documentation at this revision

Comitter:
frankvnk
Date:
Thu Sep 19 13:38:45 2013 +0000
Child:
1:c091f2dbc0e5
Commit message:
First release

Changed in this revision

NVIC_set_all_priorities.cpp Show annotated file Show diff for this revision Revisions of this file
NVIC_set_all_priorities.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NVIC_set_all_priorities.cpp	Thu Sep 19 13:38:45 2013 +0000
@@ -0,0 +1,18 @@
+/**************************************************************************************************
+ *****                                                                                        *****
+ *****  Name: NVIC_set_all_priorities.cpp                                                     *****
+ *****  Date: 18/09/2013                                                                      *****
+ *****  Auth: Frank Vannieuwkerke                                                             *****
+ *****  Func: library for changing all IRQ priorities at once                                 *****
+ *****        Supported targets : see enum declaration in .h file                             *****
+ *****                                                                                        *****
+ **************************************************************************************************/
+ 
+#include "NVIC_set_all_priorities.h"
+
+void NVIC_set_all_irq_priorities(int priority)
+{
+    int irqnum;
+    for(irqnum = first_IRQ_number ; irqnum < last_IRQ_number + 1 ; irqnum++)
+        NVIC_SetPriority((IRQn)irqnum, priority);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NVIC_set_all_priorities.h	Thu Sep 19 13:38:45 2013 +0000
@@ -0,0 +1,54 @@
+#ifndef SET_ALL_PRIO
+#define SET_ALL_PRIO
+
+#include "mbed.h"
+
+enum FIRST_LAST_IRQ {
+#ifdef TARGET_KL05Z
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = PORTB_IRQn,
+#elif defined TARGET_KL25Z
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = PORTD_IRQn,
+#elif defined LPC11CXX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = EINT0_IRQn,
+#elif defined LPC11UXX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = Reserved6_IRQn,
+#elif defined LPC11XX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = EINT0_IRQn,
+#elif defined LPC13XX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = Reserved5_IRQn,
+#elif defined LPC23XX
+     first_IRQ_number = WDT_IRQn,
+     last_IRQ_number  = I2S_IRQn,
+#elif defined LPC43XX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = QEI_IRQn,
+#elif defined LPC81X
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = PININT7_IRQn,
+#elif defined LPC176X
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = CANActivity_IRQn,
+#elif defined LPC408X
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = CMP1_IRQn,
+#elif defined STM32F4XX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = HASH_RNG_IRQn,
+#elif defined STM32F40XX
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = FPU_IRQn,
+#elif defined STM32F427X
+     first_IRQ_number = SysTick_IRQn,
+     last_IRQ_number  = SPI6_IRQn
+#endif
+};
+
+void NVIC_set_all_irq_priorities(int priority);
+
+#endif // SET_ALL_PRIO