diff options
| author | Cristian Maglie <c.maglie@bug.st> | 2012-10-18 15:50:09 +0200 | 
|---|---|---|
| committer | Cristian Maglie <c.maglie@bug.st> | 2012-10-18 15:50:09 +0200 | 
| commit | 6a45ba48ab1f2d0a168373a02ba7fded40a3470e (patch) | |
| tree | 163448869b4dfcbce95dc877ffff61a709fba6b6 /cores/arduino/HardwareSerial.h | |
| parent | c313b54c00635f1be14a1b09617dc9b8b562e589 (diff) | |
| parent | 6d296e0faba5b9910084c307a3f93cb2653bf7f8 (diff) | |
Merged upstream arduino branch
Diffstat (limited to 'cores/arduino/HardwareSerial.h')
| -rw-r--r-- | cores/arduino/HardwareSerial.h | 52 | 
1 files changed, 51 insertions, 1 deletions
| diff --git a/cores/arduino/HardwareSerial.h b/cores/arduino/HardwareSerial.h index bf4924c..c2d0ce9 100644 --- a/cores/arduino/HardwareSerial.h +++ b/cores/arduino/HardwareSerial.h @@ -17,6 +17,7 @@    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA    Modified 28 September 2010 by Mark Sproul +  Modified 14 August 2012 by Alarus  */  #ifndef HardwareSerial_h @@ -37,29 +38,62 @@ class HardwareSerial : public Stream      volatile uint8_t *_ubrrl;      volatile uint8_t *_ucsra;      volatile uint8_t *_ucsrb; +    volatile uint8_t *_ucsrc;      volatile uint8_t *_udr;      uint8_t _rxen;      uint8_t _txen;      uint8_t _rxcie;      uint8_t _udrie;      uint8_t _u2x; +    bool transmitting;    public:      HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer,        volatile uint8_t *ubrrh, volatile uint8_t *ubrrl,        volatile uint8_t *ucsra, volatile uint8_t *ucsrb, -      volatile uint8_t *udr, +      volatile uint8_t *ucsrc, volatile uint8_t *udr,        uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x);      void begin(unsigned long); +    void begin(unsigned long, byte);      void end();      virtual int available(void);      virtual int peek(void);      virtual int read(void);      virtual void flush(void);      virtual size_t write(uint8_t); +    inline size_t write(unsigned long n) { return write((uint8_t)n); } +    inline size_t write(long n) { return write((uint8_t)n); } +    inline size_t write(unsigned int n) { return write((uint8_t)n); } +    inline size_t write(int n) { return write((uint8_t)n); }      using Print::write; // pull in write(str) and write(buf, size) from Print      operator bool();  }; +// Define config for Serial.begin(baud, config); +#define SERIAL_5N1 0x00 +#define SERIAL_6N1 0x02 +#define SERIAL_7N1 0x04 +#define SERIAL_8N1 0x06 +#define SERIAL_5N2 0x08 +#define SERIAL_6N2 0x0A +#define SERIAL_7N2 0x0C +#define SERIAL_8N2 0x0E +#define SERIAL_5E1 0x20 +#define SERIAL_6E1 0x22 +#define SERIAL_7E1 0x24 +#define SERIAL_8E1 0x26 +#define SERIAL_5E2 0x28 +#define SERIAL_6E2 0x2A +#define SERIAL_7E2 0x2C +#define SERIAL_8E2 0x2E +#define SERIAL_5O1 0x30 +#define SERIAL_6O1 0x32 +#define SERIAL_7O1 0x34 +#define SERIAL_8O1 0x36 +#define SERIAL_5O2 0x38 +#define SERIAL_6O2 0x3A +#define SERIAL_7O2 0x3C +#define SERIAL_8O2 0x3E +  #if defined(UBRRH) || defined(UBRR0H)    extern HardwareSerial Serial;  #elif defined(USBCON) @@ -76,6 +110,22 @@ class HardwareSerial : public Stream    extern HardwareSerial Serial3;  #endif +/* + * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" + * definition.  It is slightly cleaner to define this here instead of having + * conditional code in the cpp module. + */ +#if !defined(TXC0) +#if defined(TXC) +#define TXC0 TXC +#elif defined(TXC1) +// Some devices have uart1 but no uart0 +#define TXC0 TXC1 +#else +#error TXC0 not definable in HardwareSerial.h +#endif +#endif +  extern void serialEventRun(void) __attribute__((weak));  #endif | 
