diff options
| author | Thibaut VIARD <thibaut.viard@atmel.com> | 2011-06-21 00:20:43 +0200 | 
|---|---|---|
| committer | Thibaut VIARD <thibaut.viard@atmel.com> | 2011-06-21 00:20:43 +0200 | 
| commit | 0887b98f627500271b5ad8b3c4f6c7b90bc227ee (patch) | |
| tree | ef8626954567ba22e392c68c8f3606416b07b5b5 /libraries/Wire/Wire.h | |
| parent | 90c487402cefadb6a2aab907ab07075cbb759e34 (diff) | |
Moving all AVR specific libraries to hardware/avr
Diffstat (limited to 'libraries/Wire/Wire.h')
| -rwxr-xr-x | libraries/Wire/Wire.h | 69 | 
1 files changed, 69 insertions, 0 deletions
| diff --git a/libraries/Wire/Wire.h b/libraries/Wire/Wire.h new file mode 100755 index 0000000..51df04e --- /dev/null +++ b/libraries/Wire/Wire.h @@ -0,0 +1,69 @@ +/* +  TwoWire.h - TWI/I2C library for Arduino & 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 TwoWire_h +#define TwoWire_h + +#include <inttypes.h> +#include "Stream.h" + +#define BUFFER_LENGTH 32 + +class TwoWire : public Stream +{ +  private: +    static uint8_t rxBuffer[]; +    static uint8_t rxBufferIndex; +    static uint8_t rxBufferLength; + +    static uint8_t txAddress; +    static uint8_t txBuffer[]; +    static uint8_t txBufferIndex; +    static uint8_t txBufferLength; + +    static uint8_t transmitting; +    static void (*user_onRequest)(void); +    static void (*user_onReceive)(int); +    static void onRequestService(void); +    static void onReceiveService(uint8_t*, int); +  public: +    TwoWire(); +    void begin(); +    void begin(uint8_t); +    void begin(int); +    void beginTransmission(uint8_t); +    void beginTransmission(int); +    uint8_t endTransmission(void); +    uint8_t requestFrom(uint8_t, uint8_t); +    uint8_t requestFrom(int, int); +    virtual void write(uint8_t); +    virtual void write(const char *); +    virtual void write(const uint8_t *, size_t); +    virtual int available(void); +    virtual int read(void); +    virtual int peek(void); +	virtual void flush(void); +    void onReceive( void (*)(int) ); +    void onRequest( void (*)(void) ); +}; + +extern TwoWire Wire; + +#endif + | 
