TS-E+ базовая библиотека.
libTSE+
 Указатель Классы Функции Переменные Определения типов
twi.h
1 /*
2  * twi.h
3  *
4  * Created on: Apr 13, 2015
5  * Author: nick
6  */
7 
8 #ifndef TWI_H_
9 #define TWI_H_
10 
11 #include <stdlib.h>
12 #include <stdint.h>
13 #include <avr/io.h>
14 
18 typedef enum {
19  write = 0,
20  read = 1,
21  none = 2
22 } TWIMode;
23 
24 
28 class TWIHandler {
29 public:
33  virtual void onTransactionStart() = 0;
39  virtual bool onReadRequest(uint8_t &data) = 0;
45  virtual bool onWriteRequest(const uint8_t data) = 0;
49  virtual void onTransactionDone() = 0;
50  virtual ~TWIHandler() {}
51 };
52 
56 class TWISlave {
57 private:
58  TWIHandler * _handler;
59 public:
60  TWISlave() : _handler(NULL) {}
68  bool init(const uint8_t address, TWIHandler *handler, const uint8_t level = TWI_SLAVE_INTLVL_MED_gc);
72  void ISRHandler();
73 };
74 
78 class TWIMaster {
79 private:
80  TWIMode _mode;
81 public:
82  TWIMaster();
87  bool init();
94  bool begin(const uint8_t address, const TWIMode mode);
95  size_t read(void *, size_t);
96  size_t write(const void *, size_t);
100  void commit();
101  TWIMaster &operator >> (uint8_t &);
102  TWIMaster &operator << (const uint8_t);
103 };
104 
108 extern class TWIMaster *TWIMaster;
109 extern class TWISlave *TWISlave;
110 
111 #endif /* TWI_H_ */
bool begin(const uint8_t address, const TWIMode mode)
virtual bool onWriteRequest(const uint8_t data)=0
void ISRHandler()
Definition: twi.h:78
virtual void onTransactionDone()=0
virtual void onTransactionStart()=0
virtual bool onReadRequest(uint8_t &data)=0
Definition: twi.h:56
void commit()
Definition: twi.h:28
bool init()
bool init(const uint8_t address, TWIHandler *handler, const uint8_t level=TWI_SLAVE_INTLVL_MED_gc)