38 lines
597 B
C++
38 lines
597 B
C++
|
|
#pragma once
|
|
|
|
#include <inttypes.h>
|
|
|
|
struct SoftTWI {
|
|
|
|
SoftTWI(unsigned pin_sda, unsigned pin_scl, unsigned delay = 0);
|
|
|
|
void begin();
|
|
void sleep(unsigned=1);
|
|
void set_sda(bool);
|
|
void set_scl(bool);
|
|
bool read_sda();
|
|
bool read_scl();
|
|
void wait_scl();
|
|
|
|
void write_bit(bool);
|
|
bool write(uint8_t);
|
|
unsigned write(const uint8_t*, unsigned);
|
|
|
|
bool read_bit();
|
|
uint8_t read(bool=true);
|
|
void read(uint8_t*, unsigned, bool=false);
|
|
|
|
bool start_read(uint8_t);
|
|
bool start_write(uint8_t);
|
|
|
|
void start();
|
|
void end();
|
|
|
|
private:
|
|
unsigned _pin_scl;
|
|
unsigned _pin_sda;
|
|
unsigned _delay;
|
|
};
|
|
|