mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-12-23 12:51:24 +01:00
SAMD21 IRQ priority exploration
This commit is contained in:
parent
050eb52a22
commit
1c73a3d7bf
@ -30,8 +30,6 @@
|
||||
|
||||
#include "DCCTimer.h"
|
||||
#include <wiring_private.h>
|
||||
#include <DIAG.h>
|
||||
#include <FSH.h>
|
||||
|
||||
INTERRUPT_CALLBACK interruptHandler=0;
|
||||
|
||||
@ -71,7 +69,9 @@ void DCCTimer::begin(INTERRUPT_CALLBACK callback) {
|
||||
|
||||
// Set the interrupt condition, priority and enable it in the NVIC
|
||||
TCC0->INTENSET.reg = TCC_INTENSET_OVF; // Only interrupt on overflow
|
||||
NVIC_SetPriority((IRQn_Type)TCC0_IRQn, 0); // Make this highest priority
|
||||
int USBprio = NVIC_GetPriority((IRQn_Type) USB_IRQn); // Fetch the USB priority
|
||||
NVIC_SetPriority((IRQn_Type)TCC0_IRQn, USBprio); // Match the USB priority
|
||||
// NVIC_SetPriority((IRQn_Type)TCC0_IRQn, 0); // Make this highest priority
|
||||
NVIC_EnableIRQ((IRQn_Type)TCC0_IRQn); // Enable the interrupt
|
||||
interrupts();
|
||||
}
|
||||
|
@ -113,7 +113,8 @@ void I2CManagerClass::I2C_init()
|
||||
#if defined(I2C_USE_INTERRUPTS)
|
||||
// Setting NVIC
|
||||
NVIC_EnableIRQ(SERCOM3_IRQn);
|
||||
NVIC_SetPriority (SERCOM3_IRQn, 0); /* set Priority */
|
||||
NVIC_SetPriority (SERCOM3_IRQn, SERCOM_NVIC_PRIORITY); // Match default SERCOM priorities
|
||||
// NVIC_SetPriority (SERCOM3_IRQn, 0); // Set highest priority
|
||||
|
||||
// Enable all interrupts
|
||||
s->I2CM.INTENSET.reg = SERCOM_I2CM_INTENSET_MB | SERCOM_I2CM_INTENSET_SB | SERCOM_I2CM_INTENSET_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user