29 lines
763 B
C
29 lines
763 B
C
#ifndef I2C_H_
|
|
#define I2C_H_
|
|
|
|
#define BYTE unsigned char
|
|
|
|
#define I2C_DDR DDRC
|
|
#define I2C_PORT PORTC
|
|
#define I2C_PIN PINC
|
|
|
|
#define I2C_SCL PORTC0
|
|
#define I2C_SDA PORTC1
|
|
|
|
#define ACK 0
|
|
#define NACK 1
|
|
|
|
#define I2C_DELAY() _delay_ms(1);
|
|
|
|
#define ONE_SCL() { I2C_DDR &= ~(1 << I2C_SCL); I2C_PORT |= (1 << I2C_SCL); }
|
|
#define NULL_SCL() { I2C_DDR |= (1 << I2C_SCL); I2C_PORT &= ~(1 << I2C_SCL); }
|
|
#define ONE_SDA() { I2C_DDR &= ~(1 << I2C_SDA); I2C_PORT |= (1 << I2C_SDA); }
|
|
#define NULL_SDA() { I2C_DDR |= (1 << I2C_SDA); I2C_PORT &= ~(1 << I2C_SDA); }
|
|
|
|
BYTE i2c_stop(void);
|
|
void i2c_start(void);
|
|
void i2c_restart(void);
|
|
void i2c_init(void);
|
|
BYTE i2c_send_byte(BYTE data);
|
|
BYTE i2c_read_byte(BYTE ask);
|
|
#endif /* I2C_H_ */ |