BayEOSArduino Library
SoftI2C.h
1 #ifndef SOFTI2C_H
2 #define SOFTI2C_H
3 
4 #include "Arduino.h"
5 
6 #define PULSE_LONG delayMicroseconds(30)
7 #define PULSE_SHORT delayMicroseconds(15)
8 // Function return code definitions
9 const int8_t S_Err_TO = 3; // Timeout
10 const int8_t S_Err_CRC = 2; // CRC failure
11 const int8_t S_Err_NoACK = 1; // ACK expected but not received
12 
13 class SoftI2C {
14  public:
15  SoftI2C(uint8_t dataPin, uint8_t clockPin);
16  protected:
17  void begin(void);
18  void startTransmission(void);
19  void stopTransmission(void);
20  uint8_t beginTransmission(uint8_t addr);
21  uint8_t requestFrom(uint8_t addr);
22  uint8_t read(bool ack=false);
23  int8_t write(uint8_t value);
24 
25  uint8_t _pinData; // Pin interface
26  uint8_t _pinClock;
27  uint8_t _i2caddr;
28 };
29 
30 
31 
32 #endif
Definition: SoftI2C.h:13