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 ) ;