mirror of https://github.com/noisymime/Arduino.git
Update hardware/arduino/cores/arduino/HardwareSerial.cpp
New Serial.begin(baud, config);
This commit is contained in:
parent
655ca80b29
commit
295337d9ba
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
Modified 23 November 2006 by David A. Mellis
|
Modified 23 November 2006 by David A. Mellis
|
||||||
Modified 28 September 2010 by Mark Sproul
|
Modified 28 September 2010 by Mark Sproul
|
||||||
Modified 12 August 2012 by Alarus
|
Modified 14 August 2012 by Alarus
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -356,10 +356,10 @@ try_again:
|
||||||
cbi(*_ucsrb, _udrie);
|
cbi(*_ucsrb, _udrie);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HardwareSerial::begin(unsigned long baud, byte databits, char parity, byte stopbits)
|
void HardwareSerial::begin(unsigned long baud, byte config)
|
||||||
{
|
{
|
||||||
uint16_t baud_setting;
|
uint16_t baud_setting;
|
||||||
uint8_t config_setting;
|
uint8_t current_config;
|
||||||
bool use_u2x = true;
|
bool use_u2x = true;
|
||||||
|
|
||||||
#if F_CPU == 16000000UL
|
#if F_CPU == 16000000UL
|
||||||
|
@ -392,49 +392,10 @@ try_again:
|
||||||
*_ubrrl = baud_setting;
|
*_ubrrl = baud_setting;
|
||||||
|
|
||||||
//set number of data bits
|
//set number of data bits
|
||||||
config_setting = *_ubrrh;
|
current_config = *_ubrrh;
|
||||||
config_setting = *_ucsrc;
|
current_config = *_ucsrc;
|
||||||
if (databits == 5)
|
current_config |= config;
|
||||||
{
|
*_ucsrc = current_config;
|
||||||
config_setting |= B10000000;
|
|
||||||
}
|
|
||||||
else if (databits == 6)
|
|
||||||
{
|
|
||||||
config_setting |= B10000010;
|
|
||||||
}
|
|
||||||
else if (databits == 7)
|
|
||||||
{
|
|
||||||
config_setting |= B10000100;
|
|
||||||
}
|
|
||||||
else // (databits == 8)
|
|
||||||
{
|
|
||||||
config_setting |= B10000110;
|
|
||||||
}
|
|
||||||
|
|
||||||
//set parity
|
|
||||||
if ((parity == 'O')|(parity == 'o'))
|
|
||||||
{
|
|
||||||
config_setting |= B10110000;
|
|
||||||
}
|
|
||||||
else if ((parity == 'E')|(parity == 'e'))
|
|
||||||
{
|
|
||||||
config_setting |= B10100000;
|
|
||||||
}
|
|
||||||
else // ((parity == 'N')|(parity == 'n')))
|
|
||||||
{
|
|
||||||
config_setting |= B10000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
//set number of stop bits
|
|
||||||
if (stopbits == 2)
|
|
||||||
{
|
|
||||||
config_setting |= B10001000;
|
|
||||||
}
|
|
||||||
else // (stopbits == 1)
|
|
||||||
{
|
|
||||||
config_setting |= B10000000;
|
|
||||||
}
|
|
||||||
*_ucsrc = config_setting;
|
|
||||||
|
|
||||||
sbi(*_ucsrb, _rxen);
|
sbi(*_ucsrb, _rxen);
|
||||||
sbi(*_ucsrb, _txen);
|
sbi(*_ucsrb, _txen);
|
||||||
|
@ -534,4 +495,3 @@ HardwareSerial::operator bool() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // whole file
|
#endif // whole file
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue