From eff20deb27ccde721d78dbade8b57787479d6c91 Mon Sep 17 00:00:00 2001 From: Collin Kidder Date: Wed, 24 Dec 2014 10:36:40 -0500 Subject: [PATCH] Add ability to set interrupt priority for UART/USARTs. --- hardware/arduino/sam/cores/arduino/UARTClass.cpp | 10 ++++++++++ hardware/arduino/sam/cores/arduino/UARTClass.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/hardware/arduino/sam/cores/arduino/UARTClass.cpp b/hardware/arduino/sam/cores/arduino/UARTClass.cpp index 99e7219b5..6ff9d932f 100644 --- a/hardware/arduino/sam/cores/arduino/UARTClass.cpp +++ b/hardware/arduino/sam/cores/arduino/UARTClass.cpp @@ -90,6 +90,16 @@ void UARTClass::end( void ) pmc_disable_periph_clk( _dwId ) ; } +void UARTClass::setInterruptPriority(uint32_t priority) +{ + NVIC_SetPriority(_dwIrq, priority & 0x0F); +} + +uint32_t UARTClass::getInterruptPriority() +{ + return NVIC_GetPriority(_dwIrq); +} + int UARTClass::available( void ) { return (uint32_t)(SERIAL_BUFFER_SIZE + _rx_buffer->_iHead - _rx_buffer->_iTail) % SERIAL_BUFFER_SIZE ; diff --git a/hardware/arduino/sam/cores/arduino/UARTClass.h b/hardware/arduino/sam/cores/arduino/UARTClass.h index 6c513374f..b60fae3d0 100644 --- a/hardware/arduino/sam/cores/arduino/UARTClass.h +++ b/hardware/arduino/sam/cores/arduino/UARTClass.h @@ -48,6 +48,8 @@ class UARTClass : public HardwareSerial int read( void ) ; void flush( void ) ; size_t write( const uint8_t c ) ; + void setInterruptPriority(uint32_t priority); + uint32_t getInterruptPriority(); void IrqHandler( void ) ;