Adafruit TinyWireM Library
TinyWireM.h
Go to the documentation of this file.
1 
47 #ifndef TinyWireM_h
48 #define TinyWireM_h
49 
50 #include "Arduino.h"
51 #include <inttypes.h>
52 #define USI_SEND 0
53 #define USI_RCVE 1
54 #define USI_BUF_SIZE 18
55 
56 
59 class USI_TWI {
60 private:
61  static uint8_t USI_Buf[]; // holds I2C send and receive data
62  static uint8_t USI_BufIdx; // current number of bytes in the send buff
63  static uint8_t USI_LastRead; // number of bytes read so far
64  static uint8_t USI_BytesAvail; // number of bytes requested but not read
65 
66 public:
67  USI_TWI();
71  void begin();
76  void beginTransmission(uint8_t);
82  size_t write(uint8_t);
89  inline size_t write(uint8_t *d, uint8_t n) {
90  uint16_t i;
91  for (i = 0; i < n; i++)
92  write(d[i]);
93  return (size_t)n;
94  }
100  inline size_t write(unsigned long n) { return write((uint8_t)n); }
106  inline size_t write(long n) { return write((uint8_t)n); }
112  inline size_t write(unsigned int n) { return write((uint8_t)n); }
118  inline size_t write(int n) { return write((uint8_t)n); }
124  void send(uint8_t b) { write(b); }
131  void send(uint8_t *d, uint8_t n) { write(d, n); }
137  void send(int n) { write((uint8_t)n); }
142  uint8_t endTransmission();
148  uint8_t endTransmission(uint8_t);
155  uint8_t requestFrom(uint8_t, uint8_t);
160  int read();
165  int available();
170  int peek(void);
174  void flush(void);
179  uint8_t receive(void) {
180  int c = read();
181  if (c < 0)
182  return 0;
183  return c;
184  }
189  void end();
190 };
191 
192 extern USI_TWI TinyWireM;
193 
194 #endif
int available()
The bytes available htat haven&#39;t been read yet.
Definition: TinyWireM.cpp:124
USI_TWI TinyWireM
Makes TinyWireM an object of USI_TWI.
Definition: TinyWireM.cpp:135
uint8_t endTransmission()
Ends the transmission.
Definition: TinyWireM.cpp:68
void send(uint8_t *d, uint8_t n)
Sends data.
Definition: TinyWireM.h:131
size_t write(unsigned long n)
Sends data.
Definition: TinyWireM.h:100
int read()
Returns the bytes received one at a time.
Definition: TinyWireM.cpp:119
void send(int n)
Sends data.
Definition: TinyWireM.h:137
uint8_t receive(void)
Receives data from the device.
Definition: TinyWireM.h:179
size_t write(unsigned int n)
Sends data.
Definition: TinyWireM.h:112
class USI_TWI : public Stream
Definition: TinyWireM.h:59
size_t write(uint8_t)
Buffers up data to send.
Definition: TinyWireM.cpp:60
void begin()
Initialize library for main function.
Definition: TinyWireM.cpp:50
size_t write(int n)
Sends data.
Definition: TinyWireM.h:118
uint8_t requestFrom(uint8_t, uint8_t)
Setup for receiving from secondary.
Definition: TinyWireM.cpp:93
void beginTransmission(uint8_t)
Setup address & write bit.
Definition: TinyWireM.cpp:54
void end()
Function for generating a TWI Stop Condition. Used to release the TWI bus.
Definition: TinyWireM.cpp:128
void send(uint8_t b)
Buffers up data to send.
Definition: TinyWireM.h:124
size_t write(long n)
Sends data.
Definition: TinyWireM.h:106
void flush(void)
Flushes the buffer.
int peek(void)
Returns the top value.
size_t write(uint8_t *d, uint8_t n)
Sends data.
Definition: TinyWireM.h:89