New LiquidCrystal library  1.3.0
Generic LCD driver library
/Users/fmalpartida/Documents/development/mercurial repos/SW/NewliquidCrystal/SoftI2CMaster.h
1 /*
2  * SoftI2CMaster.h -- Multi-instance software I2C Master library
3  *
4  * 2010-2012 Tod E. Kurt, http://todbot.com/blog/
5  * 2014, by Testato: update library and examples for follow Wire’s API of Arduino IDE 1.x
6  *
7  */
8 
9 #ifndef SoftI2CMaster_h
10 #define SoftI2CMaster_h
11 
12 #include <inttypes.h>
13 
14 #define _SOFTI2CMASTER_VERSION 13 // software version of this library
15 
16 
18 {
19 
20 private:
21  // per object data
22  uint8_t _sclPin;
23  uint8_t _sdaPin;
24  uint8_t _sclBitMask;
25  uint8_t _sdaBitMask;
26  volatile uint8_t *_sclPortReg;
27  volatile uint8_t *_sdaPortReg;
28  volatile uint8_t *_sclDirReg;
29  volatile uint8_t *_sdaDirReg;
30 
31  uint8_t usePullups;
32 
33  // private methods
34 
35  void i2c_writebit( uint8_t c );
36  uint8_t i2c_readbit(void);
37  void i2c_init(void);
38  void i2c_start(void);
39  void i2c_repstart(void);
40  void i2c_stop(void);
41  uint8_t i2c_write( uint8_t c );
42  uint8_t i2c_read( uint8_t ack );
43 
44 public:
45  // public methods
46  SoftI2CMaster();
47  SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin);
48  SoftI2CMaster(uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups);
49 
50  void setPins(uint8_t sclPin, uint8_t sdaPin, uint8_t usePullups);
51 
52  uint8_t beginTransmission(uint8_t address);
53  uint8_t beginTransmission(int address);
54  uint8_t endTransmission(void);
55  uint8_t write(uint8_t);
56  void write(uint8_t*, uint8_t);
57  void write(int);
58  void write(char*);
59 
60  uint8_t requestFrom(int address);
61  uint8_t requestFrom(uint8_t address);
62  uint8_t read( uint8_t ack );
63  uint8_t read();
64  uint8_t readLast();
65 
66 };
67 
68 #endif
Definition: SoftI2CMaster.h:17