Update hardware/arduino/cores/arduino/HardwareSerial.cpp

New Serial.begin(baud, config);
This commit is contained in:
Alarus 2012-08-14 19:50:36 +06:00
parent 655ca80b29
commit 295337d9ba
1 changed files with 7 additions and 47 deletions

View File

@ -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