Metro M4 Interrupt Priorities

Please tell us which board you are using.
For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
mdl96
 
Posts: 2
Joined: Thu Sep 10, 2020 2:12 am

Metro M4 Interrupt Priorities

Post by mdl96 »

I'm trying to attach an interrupt to digital pin 2, but I also want to set it to priority 0. I'm trying to use the NVIC_SetPriority method, but I'm not sure what parameter to pass that would represent the IRQ number for pin 3 (or maybe it's all of Port A?). Does anyone have any insight on that?

Code: Select all

attachInterrupt(digitalPinToInterrupt(2), pulse, RISING);
NVIC_SetPriority(/*What goes here?*/, 0);

User avatar
User_UMjT7KxnxP8YN8
 
Posts: 323
Joined: Tue Jul 17, 2018 1:28 pm

Re: Metro M4 Interrupt Priorities

Post by User_UMjT7KxnxP8YN8 »

The first param should be one of the following, defined in samd51j19a.h in C:\Users\[username]\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.2.0\CMSIS\Device\ATMEL\samd51\include on a Windows system.

EIC_0_IRQn = 12, /**< 12 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_0 */
EIC_1_IRQn = 13, /**< 13 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_1 */
EIC_2_IRQn = 14, /**< 14 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_2 */
EIC_3_IRQn = 15, /**< 15 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_3 */
EIC_4_IRQn = 16, /**< 16 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_4 */
EIC_5_IRQn = 17, /**< 17 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_5 */
EIC_6_IRQn = 18, /**< 18 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_6 */
EIC_7_IRQn = 19, /**< 19 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_7 */
EIC_8_IRQn = 20, /**< 20 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_8 */
EIC_9_IRQn = 21, /**< 21 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_9 */
EIC_10_IRQn = 22, /**< 22 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_10 */
EIC_11_IRQn = 23, /**< 23 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_11 */
EIC_12_IRQn = 24, /**< 24 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_12 */
EIC_13_IRQn = 25, /**< 25 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_13 */
EIC_14_IRQn = 26, /**< 26 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_14 */
EIC_15_IRQn = 27, /**< 27 SAMD51J19A External Interrupt Controller (EIC): EIC_EXTINT_15 */

You can read more about this in Chapter 23 of the processor datasheet, EIC- External Interrupt Controller; the latest one I have is named SAM_D5x_E5x_Family_Data_Sheet_DS60001507G.pdf and is available on the Microchip website.

User avatar
mdl96
 
Posts: 2
Joined: Thu Sep 10, 2020 2:12 am

Re: Metro M4 Interrupt Priorities

Post by mdl96 »

Thank you, very helpful!

Locked
Please be positive and constructive with your questions and comments.

Return to “Metro, Metro Express, and Grand Central Boards”