00001 #ifndef _I2CMASTER_H 00002 #define _I2CMASTER_H 1 00003 00004 00005 #if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 00006 #error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" 00007 #endif 00008 00009 #include <avr/io.h> 00010 00012 #define I2C_READ 1 00013 00015 #define I2C_WRITE 0 00016 00017 00023 extern void i2c_init(void); 00024 00025 00031 extern void i2c_stop(void); 00032 00033 00041 extern unsigned char i2c_start(unsigned char addr); 00042 00043 00051 extern unsigned char i2c_rep_start(unsigned char addr); 00052 00053 00061 extern void i2c_start_wait(unsigned char addr); 00062 00063 00070 extern unsigned char i2c_write(unsigned char data); 00071 00072 00077 extern unsigned char i2c_readAck(void); 00078 00083 extern unsigned char i2c_readNak(void); 00084 00094 extern unsigned char i2c_read(unsigned char ack); 00095 #define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); 00096 00097 #endif 00098