|
|
@ -270,7 +270,9 @@
|
|
|
|
const bool isr_enabled = TEST(M_UCSRxB, M_RXCIEx);
|
|
|
|
const bool isr_enabled = TEST(M_UCSRxB, M_RXCIEx);
|
|
|
|
CBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
CBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
const int v = rx_buffer.head == rx_buffer.tail ? -1 : rx_buffer.buffer[rx_buffer.tail];
|
|
|
|
|
|
|
|
|
|
|
|
const int v = rx_buffer.head == rx_buffer.tail ? -1 : rx_buffer.buffer[rx_buffer.tail];
|
|
|
|
|
|
|
|
|
|
|
|
#if RX_BUFFER_SIZE > 256
|
|
|
|
#if RX_BUFFER_SIZE > 256
|
|
|
|
// Reenable RX interrupts if they were enabled
|
|
|
|
// Reenable RX interrupts if they were enabled
|
|
|
|
if (isr_enabled) SBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
if (isr_enabled) SBI(M_UCSRxB, M_RXCIEx);
|
|
|
@ -343,7 +345,7 @@
|
|
|
|
CBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
CBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
|
|
|
|
const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
|
|
|
|
|
|
|
|
|
|
|
|
#if RX_BUFFER_SIZE > 256
|
|
|
|
#if RX_BUFFER_SIZE > 256
|
|
|
|
if (isr_enabled) SBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
if (isr_enabled) SBI(M_UCSRxB, M_RXCIEx);
|
|
|
@ -358,7 +360,7 @@
|
|
|
|
CBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
CBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
rx_buffer.tail = rx_buffer.head;
|
|
|
|
rx_buffer.tail = rx_buffer.head;
|
|
|
|
|
|
|
|
|
|
|
|
#if RX_BUFFER_SIZE > 256
|
|
|
|
#if RX_BUFFER_SIZE > 256
|
|
|
|
if (isr_enabled) SBI(M_UCSRxB, M_RXCIEx);
|
|
|
|
if (isr_enabled) SBI(M_UCSRxB, M_RXCIEx);
|
|
|
|