diff options
Diffstat (limited to 'cores/arduino/HardwareSerial.cpp')
-rw-r--r-- | cores/arduino/HardwareSerial.cpp | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/cores/arduino/HardwareSerial.cpp b/cores/arduino/HardwareSerial.cpp index 794a7be..eb2365f 100644 --- a/cores/arduino/HardwareSerial.cpp +++ b/cores/arduino/HardwareSerial.cpp @@ -104,24 +104,19 @@ inline void store_char(unsigned char c, ring_buffer *buffer) #if !defined(USART0_RX_vect) && defined(USART1_RX_vect) // do nothing - on the 32u4 the first USART is USART1 #else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) +#if !defined(USART_RX_vect) && !defined(USART0_RX_vect) && \ + !defined(USART_RXC_vect) #error "Don't know what the Data Received vector is called for the first UART" #else void serialEvent() __attribute__((weak)); void serialEvent() {} #define serialEvent_implemented #if defined(USART_RX_vect) - SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) + ISR(USART_RX_vect) #elif defined(USART0_RX_vect) - SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) + ISR(USART0_RX_vect) +#elif defined(USART_RXC_vect) + ISR(USART_RXC_vect) // ATmega8 #endif { #if defined(UDR0) @@ -149,7 +144,7 @@ inline void store_char(unsigned char c, ring_buffer *buffer) void serialEvent1() __attribute__((weak)); void serialEvent1() {} #define serialEvent1_implemented - SIGNAL(USART1_RX_vect) + ISR(USART1_RX_vect) { if (bit_is_clear(UCSR1A, UPE1)) { unsigned char c = UDR1; @@ -158,15 +153,13 @@ inline void store_char(unsigned char c, ring_buffer *buffer) unsigned char c = UDR1; }; } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV #endif #if defined(USART2_RX_vect) && defined(UDR2) void serialEvent2() __attribute__((weak)); void serialEvent2() {} #define serialEvent2_implemented - SIGNAL(USART2_RX_vect) + ISR(USART2_RX_vect) { if (bit_is_clear(UCSR2A, UPE2)) { unsigned char c = UDR2; @@ -175,15 +168,13 @@ inline void store_char(unsigned char c, ring_buffer *buffer) unsigned char c = UDR2; }; } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV #endif #if defined(USART3_RX_vect) && defined(UDR3) void serialEvent3() __attribute__((weak)); void serialEvent3() {} #define serialEvent3_implemented - SIGNAL(USART3_RX_vect) + ISR(USART3_RX_vect) { if (bit_is_clear(UCSR3A, UPE3)) { unsigned char c = UDR3; @@ -192,8 +183,6 @@ inline void store_char(unsigned char c, ring_buffer *buffer) unsigned char c = UDR3; }; } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV #endif void serialEventRun(void) |