Skip to content
Browse files

Adding serialEvent(), serialEvent1(), etc.

Called from within the serial receive interrupt.  These are implemented as an empty weak function in the core that be overridden by the user's sketch.

http://code.google.com/p/arduino/issues/detail?id=263
  • Loading branch information...
1 parent c740778 commit cf044cd23600f24623b56b2ec692785bd9c52fdd @damellis damellis committed May 7, 2011
Showing with 12 additions and 2 deletions.
  1. +12 −2 hardware/arduino/cores/arduino/HardwareSerial.cpp
View
14 hardware/arduino/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

0 comments on commit cf044cd

Please sign in to comment.
Something went wrong with that request. Please try again.