aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cores/arduino/HardwareSerial.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/cores/arduino/HardwareSerial.cpp b/cores/arduino/HardwareSerial.cpp
index 91c79d3..9f5ed50 100644
--- a/cores/arduino/HardwareSerial.cpp
+++ b/cores/arduino/HardwareSerial.cpp
@@ -86,6 +86,8 @@ inline void store_char(unsigned char c, ring_buffer *buffer)
!defined(SIG_UART_RECV)
#error Don't know what the Data Received vector is called for the first UART
#else
+ void serialEvent() __attribute__((weak));
+ void serialEvent() {}
#if defined(USART_RX_vect)
SIGNAL(USART_RX_vect)
#elif defined(SIG_USART0_RECV)
@@ -106,36 +108,44 @@ inline void store_char(unsigned char c, ring_buffer *buffer)
#error UDR not defined
#endif
store_char(c, &rx_buffer);
+ serialEvent();
}
#endif
-//#if defined(SIG_USART1_RECV)
#if defined(USART1_RX_vect)
- //SIGNAL(SIG_USART1_RECV)
+ void serialEvent1() __attribute__((weak));
+ void serialEvent1() {}
SIGNAL(USART1_RX_vect)
{
unsigned char c = UDR1;
store_char(c, &rx_buffer1);
+ serialEvent1();
}
#elif defined(SIG_USART1_RECV)
#error SIG_USART1_RECV
#endif
#if defined(USART2_RX_vect) && defined(UDR2)
+ void serialEvent2() __attribute__((weak));
+ void serialEvent2() {}
SIGNAL(USART2_RX_vect)
{
unsigned char c = UDR2;
store_char(c, &rx_buffer2);
+ serialEvent2();
}
#elif defined(SIG_USART2_RECV)
#error SIG_USART2_RECV
#endif
#if defined(USART3_RX_vect) && defined(UDR3)
+ void serialEvent3() __attribute__((weak));
+ void serialEvent3() {}
SIGNAL(USART3_RX_vect)
{
unsigned char c = UDR3;
store_char(c, &rx_buffer3);
+ serialEvent3();
}
#elif defined(SIG_USART3_RECV)
#error SIG_USART3_RECV