Saving some bytes in HardwareSerial::write

This commit is contained in:
chromhelm 2015-05-29 16:51:55 +02:00 committed by Cristian Maglie
parent f735e10908
commit cd9d30a8fe
1 changed files with 1 additions and 3 deletions

View File

@ -213,6 +213,7 @@ void HardwareSerial::flush()
size_t HardwareSerial::write(uint8_t c)
{
_written = true;
// If the buffer and the data register is empty, just write the byte
// to the data register and be done. This shortcut helps
// significantly improve the effective datarate at high (>
@ -220,7 +221,6 @@ size_t HardwareSerial::write(uint8_t c)
if (_tx_buffer_head == _tx_buffer_tail && bit_is_set(*_ucsra, UDRE0)) {
*_udr = c;
sbi(*_ucsra, TXC0);
_written = true;
return 1;
}
tx_buffer_index_t i = (_tx_buffer_head + 1) % SERIAL_TX_BUFFER_SIZE;
@ -244,10 +244,8 @@ size_t HardwareSerial::write(uint8_t c)
_tx_buffer_head = i;
sbi(*_ucsrb, UDRIE0);
_written = true;
return 1;
}
#endif // whole file