Adafruit TinyWireM Library
TinyWireM.h
Go to the documentation of this file.
1 
47 #ifndef TinyWireM_h
48 #define TinyWireM_h
49 
50 #include <inttypes.h>
51 
52 #include "Arduino.h"
53 #define USI_SEND 0
54 #define USI_RCVE 1
55 #define USI_BUF_SIZE 18
56 
57 
60 class USI_TWI {
61  private:
62  static uint8_t USI_Buf[]; // holds I2C send and receive data
63  static uint8_t USI_BufIdx; // current number of bytes in the send buff
64  static uint8_t USI_LastRead; // number of bytes read so far
65  static uint8_t USI_BytesAvail; // number of bytes requested but not read
66 
67  public:
68  USI_TWI();
72  void begin();
77  void beginTransmission(uint8_t);
83  size_t write(uint8_t);
90  inline size_t write(uint8_t* d, uint8_t n) {
91  uint16_t i;
92  for (i = 0; i < n; i++)
93  write(d[i]);
94  return (size_t)n;
95  }
101  inline size_t write(unsigned long n) {
102  return write((uint8_t)n);
103  }
109  inline size_t write(long n) {
110  return write((uint8_t)n);
111  }
117  inline size_t write(unsigned int n) {
118  return write((uint8_t)n);
119  }
125  inline size_t write(int n) {
126  return write((uint8_t)n);
127  }
133  void send(uint8_t b) {
134  write(b);
135  }
142  void send(uint8_t* d, uint8_t n) {
143  write(d, n);
144  }
150  void send(int n) {
151  write((uint8_t)n);
152  }
157  uint8_t endTransmission();
163  uint8_t endTransmission(uint8_t);
170  uint8_t requestFrom(uint8_t, uint8_t);
175  int read();
180  int available();
185  int peek(void);
189  void flush(void);
194  uint8_t receive(void) {
195  int c = read();
196  if (c < 0)
197  return 0;
198  return c;
199  }
204  void end();
205 };
206 
207 extern USI_TWI TinyWireM;
208 
209 #endif
int available()
The bytes available htat haven&#39;t been read yet.
Definition: TinyWireM.cpp:127
USI_TWI TinyWireM
Makes TinyWireM an object of USI_TWI.
Definition: TinyWireM.cpp:140
uint8_t endTransmission()
Ends the transmission.
Definition: TinyWireM.cpp:69
void send(uint8_t *d, uint8_t n)
Sends data.
Definition: TinyWireM.h:142
size_t write(unsigned long n)
Sends data.
Definition: TinyWireM.h:101
int read()
Returns the bytes received one at a time.
Definition: TinyWireM.cpp:122
void send(int n)
Sends data.
Definition: TinyWireM.h:150
uint8_t receive(void)
Receives data from the device.
Definition: TinyWireM.h:194
size_t write(unsigned int n)
Sends data.
Definition: TinyWireM.h:117
class USI_TWI : public Stream
Definition: TinyWireM.h:60
size_t write(uint8_t)
Buffers up data to send.
Definition: TinyWireM.cpp:61
void begin()
Initialize library for main function.
Definition: TinyWireM.cpp:51
size_t write(int n)
Sends data.
Definition: TinyWireM.h:125
uint8_t requestFrom(uint8_t, uint8_t)
Setup for receiving from secondary.
Definition: TinyWireM.cpp:95
void beginTransmission(uint8_t)
Setup address & write bit.
Definition: TinyWireM.cpp:55
void end()
Function for generating a TWI Stop Condition. Used to release the TWI bus.
Definition: TinyWireM.cpp:131
void send(uint8_t b)
Buffers up data to send.
Definition: TinyWireM.h:133
size_t write(long n)
Sends data.
Definition: TinyWireM.h:109
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:90