A simple example that uses the GPIO group and pin interrupts. LED1 turns on when P21 and P22 are grounded (using group 0 interrupt) LED1 turns of when P23 or P24 are grounded (using group 1 interrupt) LED2 turns on when P19 is grounded (using GPIO interrupt 0) LED2 turns off when P18 is grounded (using GPIO interrupt 1)

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
alexan_e
Date:
Thu May 24 15:25:54 2012 +0000
Parent:
1:566ac56c130e
Commit message:
Changed interrupt priority comment, the CortexM0 has four levels 0-3.
Moved the SetPriority function before the interrupt enable. In CortexM0 the priority shouldnt be changed while the interrupt is enabled

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 566ac56c130e -r 7c8d0f7dd79f main.cpp
--- a/main.cpp	Sat May 19 23:33:19 2012 +0000
+++ b/main.cpp	Thu May 24 15:25:54 2012 +0000
@@ -228,18 +228,18 @@
                          Vectored Interrupt initialization
 ******************************************************************************/
 
+   NVIC_SetPriority(GINT0_IRQn,0);          /* Default priority group 0, can be 0(highest) - 3(lowest) */
    NVIC_EnableIRQ(GINT0_IRQn);           /* Enable GPIO group 0 interrupt */
-   NVIC_SetPriority(GINT0_IRQn,0);          /* Default priority group 0, can be 0(highest) - 31(lowest) */
-
-   NVIC_EnableIRQ(GINT1_IRQn);           /* Enable GPIO group 1 interrupt */
-   NVIC_SetPriority(GINT1_IRQn,0);          /* Default priority group 0, can be 0(highest) - 31(lowest) */
 
+   NVIC_SetPriority(GINT1_IRQn,0);          /* Default priority group 0, can be 0(highest) - 3(lowest) */
+   NVIC_EnableIRQ(GINT1_IRQn);           /* Enable GPIO group 1 interrupt */
+   
+   NVIC_SetPriority(FLEX_INT0_IRQn,0);          /* Default priority group 0, can be 0(highest) - 3(lowest) */
    NVIC_EnableIRQ(FLEX_INT0_IRQn);           /* Enable GPIO pin interrupt 0 */
-   NVIC_SetPriority(FLEX_INT0_IRQn,0);          /* Default priority group 0, can be 0(highest) - 31(lowest) */
-
+   
+   NVIC_SetPriority(FLEX_INT1_IRQn,0);          /* Default priority group 0, can be 0(highest) - 3(lowest) */
    NVIC_EnableIRQ(FLEX_INT1_IRQn);           /* Enable GPIO pin interrupt 1 */
-   NVIC_SetPriority(FLEX_INT1_IRQn,0);          /* Default priority group 0, can be 0(highest) - 31(lowest) */
-
+   
    while(1)
   {