diff --git a/cores/arduino/WInterrupts.cpp b/cores/arduino/WInterrupts.cpp index 85400142..52769173 100644 --- a/cores/arduino/WInterrupts.cpp +++ b/cores/arduino/WInterrupts.cpp @@ -42,32 +42,27 @@ static void __initialize() pmc_enable_periph_clk(ID_PIOA); NVIC_DisableIRQ(PIOA_IRQn); NVIC_ClearPendingIRQ(PIOA_IRQn); - NVIC_SetPriority(PIOA_IRQn, pioInterruptPriority); NVIC_EnableIRQ(PIOA_IRQn); pmc_enable_periph_clk(ID_PIOB); NVIC_DisableIRQ(PIOB_IRQn); NVIC_ClearPendingIRQ(PIOB_IRQn); - NVIC_SetPriority(PIOB_IRQn, pioInterruptPriority); NVIC_EnableIRQ(PIOB_IRQn); pmc_enable_periph_clk(ID_PIOC); NVIC_DisableIRQ(PIOC_IRQn); NVIC_ClearPendingIRQ(PIOC_IRQn); - NVIC_SetPriority(PIOC_IRQn, pioInterruptPriority); NVIC_EnableIRQ(PIOC_IRQn); pmc_enable_periph_clk(ID_PIOD); NVIC_DisableIRQ(PIOD_IRQn); NVIC_ClearPendingIRQ(PIOD_IRQn); - NVIC_SetPriority(PIOD_IRQn, pioInterruptPriority); NVIC_EnableIRQ(PIOD_IRQn); #ifdef ID_PIOE pmc_enable_periph_clk(ID_PIOE); NVIC_DisableIRQ(PIOE_IRQn); NVIC_ClearPendingIRQ(PIOE_IRQn); - NVIC_SetPriority(PIOE_IRQn, pioInterruptPriority); NVIC_EnableIRQ(PIOE_IRQn); #endif } @@ -76,24 +71,20 @@ static void __initialize() // This needs to be fast. Hopefully the ARM conditional instructions will be used to advantage here. static unsigned int GetHighestBit(uint32_t bits) { - unsigned int bitNum = 0; - if (bits >= 0x00010000) - { - bitNum += 16; - } - if ((bits >> bitNum) >= 0x0100) + unsigned int bitNum = (bits >= 0x00010000) ? 16 : 0; + if ((bits >> bitNum) >= 0x0100u) { bitNum += 8; } - if ((bits >> bitNum) >= 0x0010) + if ((bits >> bitNum) >= 0x0010u) { bitNum += 4; } - if ((bits >> bitNum) >= 0x0004) + if ((bits >> bitNum) >= 0x0004u) { bitNum += 2; } - if ((bits >> bitNum) >= 0x0002) + if ((bits >> bitNum) >= 0x0002u) { bitNum += 1; } @@ -102,11 +93,11 @@ static unsigned int GetHighestBit(uint32_t bits) extern "C" void attachInterrupt(uint32_t pin, void (*callback)(void*), uint32_t mode, void *param) { - static int enabled = 0; + static bool enabled = false; if (!enabled) { __initialize(); - enabled = 1; + enabled = true; } // Retrieve pin information diff --git a/cores/arduino/wiring_digital.cpp b/cores/arduino/wiring_digital.cpp index d65e6829..6b6b055b 100644 --- a/cores/arduino/wiring_digital.cpp +++ b/cores/arduino/wiring_digital.cpp @@ -47,7 +47,7 @@ extern "C" void pinModeDuet(Pin pin, enum PinMode ulMode, uint32_t debounceCutof (debounceCutoff == 0) ? 0 : PIO_DEBOUNCE); if (debounceCutoff != 0) { - pio_set_debounce_filter(pinDesc.pPort, pinDesc.ulPin, debounceCutoff); // enable debounce filer with specified cutoff frequency + pio_set_debounce_filter(pinDesc.pPort, pinDesc.ulPin, debounceCutoff); // enable debounce filter with specified cutoff frequency } break; @@ -64,7 +64,7 @@ extern "C" void pinModeDuet(Pin pin, enum PinMode ulMode, uint32_t debounceCutof (debounceCutoff == 0) ? PIO_PULLUP : PIO_PULLUP | PIO_DEBOUNCE); if (debounceCutoff != 0) { - pio_set_debounce_filter(pinDesc.pPort, pinDesc.ulPin, debounceCutoff); // enable debounce filer with specified cutoff frequency + pio_set_debounce_filter(pinDesc.pPort, pinDesc.ulPin, debounceCutoff); // enable debounce filter with specified cutoff frequency } break; @@ -81,7 +81,7 @@ extern "C" void pinModeDuet(Pin pin, enum PinMode ulMode, uint32_t debounceCutof (debounceCutoff == 0) ? 0 : PIO_DEBOUNCE); if (debounceCutoff != 0) { - pio_set_debounce_filter(pinDesc.pPort, pinDesc.ulPin, debounceCutoff); // enable debounce filer with specified cutoff frequency + pio_set_debounce_filter(pinDesc.pPort, pinDesc.ulPin, debounceCutoff); // enable debounce filter with specified cutoff frequency } break; #endif @@ -154,7 +154,7 @@ extern "C" void digitalWrite(Pin pin, bool ulVal) const PinDescription& pinDesc = g_APinDescription[pin]; if (pinDesc.ulPinType != PIO_NOT_A_PIN) { - if (ulVal) // we make use of the fact that LOW is zero and HIGH is nonzero + if (ulVal) { pinDesc.pPort->PIO_SODR = pinDesc.ulPin; } diff --git a/libraries/RTCDue/RTCDue.cpp b/libraries/RTCDue/RTCDue.cpp index d072ef55..42bc22f7 100644 --- a/libraries/RTCDue/RTCDue.cpp +++ b/libraries/RTCDue/RTCDue.cpp @@ -15,7 +15,6 @@ void RTCDue::Init() // disable RTC alarm interrupts NVIC_DisableIRQ(RTC_IRQn); NVIC_ClearPendingIRQ(RTC_IRQn); - NVIC_SetPriority(RTC_IRQn, 8); } bool RTCDue::IsDateTimeSet() diff --git a/libraries/Wire/Wire.cpp b/libraries/Wire/Wire.cpp index 83846096..2ff23193 100644 --- a/libraries/Wire/Wire.cpp +++ b/libraries/Wire/Wire.cpp @@ -513,7 +513,6 @@ static void Wire_Init(void) { NVIC_DisableIRQ(TWI1_IRQn); NVIC_ClearPendingIRQ(TWI1_IRQn); - NVIC_SetPriority(TWI1_IRQn, 6); NVIC_EnableIRQ(TWI1_IRQn); } @@ -532,7 +531,6 @@ static void Wire1_Init(void) { NVIC_DisableIRQ(TWI0_IRQn); NVIC_ClearPendingIRQ(TWI0_IRQn); - NVIC_SetPriority(TWI0_IRQn, 6); NVIC_EnableIRQ(TWI0_IRQn); }