diff options
| author | David A. Mellis <d.mellis@arduino.cc> | 2009-11-21 23:23:43 +0000 | 
|---|---|---|
| committer | David A. Mellis <d.mellis@arduino.cc> | 2009-11-21 23:23:43 +0000 | 
| commit | 35f5f6e99f15e0cc674c814937c82ef5fbbf86c3 (patch) | |
| tree | bc2c0bbb790831ab26bfa8221cf6f3554363b89b /cores/arduino/HardwareSerial.h | |
| parent | 80d8477877dc004f293d0ab1717b8783421d84a0 (diff) | |
Improving third-party hardware support:
- moving back to multple cores per platform
- using target instead of platform
- moving per-board and per-programmer preferences out of Preferences.java and into a new Target class
- adding a new "target" preference
- support for platform:value values in board preferences for bootloader path and core
- XXX: need to support platform:value syntax for board upload.using preferences.
Diffstat (limited to 'cores/arduino/HardwareSerial.h')
| -rwxr-xr-x | cores/arduino/HardwareSerial.h | 65 | 
1 files changed, 65 insertions, 0 deletions
| diff --git a/cores/arduino/HardwareSerial.h b/cores/arduino/HardwareSerial.h new file mode 100755 index 0000000..f975ccd --- /dev/null +++ b/cores/arduino/HardwareSerial.h @@ -0,0 +1,65 @@ +/* +  HardwareSerial.h - Hardware serial library for Wiring +  Copyright (c) 2006 Nicholas Zambetti.  All right reserved. + +  This library is free software; you can redistribute it and/or +  modify it under the terms of the GNU Lesser General Public +  License as published by the Free Software Foundation; either +  version 2.1 of the License, or (at your option) any later version. + +  This library is distributed in the hope that it will be useful, +  but WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  Lesser General Public License for more details. + +  You should have received a copy of the GNU Lesser General Public +  License along with this library; if not, write to the Free Software +  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +*/ + +#ifndef HardwareSerial_h +#define HardwareSerial_h + +#include <inttypes.h> + +#include "Print.h" + +struct ring_buffer; + +class HardwareSerial : public Print +{ +  private: +    ring_buffer *_rx_buffer; +    volatile uint8_t *_ubrrh; +    volatile uint8_t *_ubrrl; +    volatile uint8_t *_ucsra; +    volatile uint8_t *_ucsrb; +    volatile uint8_t *_udr; +    uint8_t _rxen; +    uint8_t _txen; +    uint8_t _rxcie; +    uint8_t _udre; +    uint8_t _u2x; +  public: +    HardwareSerial(ring_buffer *rx_buffer, +      volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, +      volatile uint8_t *ucsra, volatile uint8_t *ucsrb, +      volatile uint8_t *udr, +      uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udre, uint8_t u2x); +    void begin(long); +    uint8_t available(void); +    int read(void); +    void flush(void); +    virtual void write(uint8_t); +    using Print::write; // pull in write(str) and write(buf, size) from Print +}; + +extern HardwareSerial Serial; + +#if defined(__AVR_ATmega1280__) +extern HardwareSerial Serial1; +extern HardwareSerial Serial2; +extern HardwareSerial Serial3; +#endif + +#endif | 
