tone-generator/soft_twi.hpp

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;
};