mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-06 01:08:25 +01:00
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
This commit is contained in:
parent
c740778bf6
commit
cf044cd236
@ -86,6 +86,8 @@ inline void store_char(unsigned char c, ring_buffer *buffer)
|
|||||||
!defined(SIG_UART_RECV)
|
!defined(SIG_UART_RECV)
|
||||||
#error Don't know what the Data Received vector is called for the first UART
|
#error Don't know what the Data Received vector is called for the first UART
|
||||||
#else
|
#else
|
||||||
|
void serialEvent() __attribute__((weak));
|
||||||
|
void serialEvent() {}
|
||||||
#if defined(USART_RX_vect)
|
#if defined(USART_RX_vect)
|
||||||
SIGNAL(USART_RX_vect)
|
SIGNAL(USART_RX_vect)
|
||||||
#elif defined(SIG_USART0_RECV)
|
#elif defined(SIG_USART0_RECV)
|
||||||
@ -106,36 +108,44 @@ inline void store_char(unsigned char c, ring_buffer *buffer)
|
|||||||
#error UDR not defined
|
#error UDR not defined
|
||||||
#endif
|
#endif
|
||||||
store_char(c, &rx_buffer);
|
store_char(c, &rx_buffer);
|
||||||
|
serialEvent();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#if defined(SIG_USART1_RECV)
|
|
||||||
#if defined(USART1_RX_vect)
|
#if defined(USART1_RX_vect)
|
||||||
//SIGNAL(SIG_USART1_RECV)
|
void serialEvent1() __attribute__((weak));
|
||||||
|
void serialEvent1() {}
|
||||||
SIGNAL(USART1_RX_vect)
|
SIGNAL(USART1_RX_vect)
|
||||||
{
|
{
|
||||||
unsigned char c = UDR1;
|
unsigned char c = UDR1;
|
||||||
store_char(c, &rx_buffer1);
|
store_char(c, &rx_buffer1);
|
||||||
|
serialEvent1();
|
||||||
}
|
}
|
||||||
#elif defined(SIG_USART1_RECV)
|
#elif defined(SIG_USART1_RECV)
|
||||||
#error SIG_USART1_RECV
|
#error SIG_USART1_RECV
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USART2_RX_vect) && defined(UDR2)
|
#if defined(USART2_RX_vect) && defined(UDR2)
|
||||||
|
void serialEvent2() __attribute__((weak));
|
||||||
|
void serialEvent2() {}
|
||||||
SIGNAL(USART2_RX_vect)
|
SIGNAL(USART2_RX_vect)
|
||||||
{
|
{
|
||||||
unsigned char c = UDR2;
|
unsigned char c = UDR2;
|
||||||
store_char(c, &rx_buffer2);
|
store_char(c, &rx_buffer2);
|
||||||
|
serialEvent2();
|
||||||
}
|
}
|
||||||
#elif defined(SIG_USART2_RECV)
|
#elif defined(SIG_USART2_RECV)
|
||||||
#error SIG_USART2_RECV
|
#error SIG_USART2_RECV
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USART3_RX_vect) && defined(UDR3)
|
#if defined(USART3_RX_vect) && defined(UDR3)
|
||||||
|
void serialEvent3() __attribute__((weak));
|
||||||
|
void serialEvent3() {}
|
||||||
SIGNAL(USART3_RX_vect)
|
SIGNAL(USART3_RX_vect)
|
||||||
{
|
{
|
||||||
unsigned char c = UDR3;
|
unsigned char c = UDR3;
|
||||||
store_char(c, &rx_buffer3);
|
store_char(c, &rx_buffer3);
|
||||||
|
serialEvent3();
|
||||||
}
|
}
|
||||||
#elif defined(SIG_USART3_RECV)
|
#elif defined(SIG_USART3_RECV)
|
||||||
#error SIG_USART3_RECV
|
#error SIG_USART3_RECV
|
||||||
|
Loading…
x
Reference in New Issue
Block a user