From 025a38a1f743fd9e89cbd477abe3f79a8d098097 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Sat, 19 Nov 2011 17:21:31 +0100 Subject: Moved os and hal related files into subdirectories. --- hal/i2c.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 hal/i2c.h (limited to 'hal/i2c.h') diff --git a/hal/i2c.h b/hal/i2c.h new file mode 100644 index 0000000..3d58056 --- /dev/null +++ b/hal/i2c.h @@ -0,0 +1,40 @@ +#ifndef I2C_H +#define I2C_H + +#include + +#include "interrupt.h" + +class I2C { + friend void interrupt(); + friend void interrupt(); + + private: + static I2C* self; + + volatile uint8_t addr; + volatile uint8_t writing; + volatile uint8_t reading; + volatile uint8_t* write_p; + volatile uint8_t* read_p; + + volatile bool busy; + + void irq_ev(); + void irq_er(); + void handle_error(); + + public: + I2C() { + self = this; + } + + void enable(); + + void write_reg(uint8_t addr_, uint8_t reg, uint8_t data); + void read_reg(uint8_t addr_, uint8_t reg, uint8_t len, uint8_t* buf); +}; + + + +#endif -- cgit v1.2.3