src.dualinventive.com/firmware/switch-mcu/src/i2c.h

38 lines
1.3 KiB
C

#ifndef _I2C_H
#define _I2C_H
/*
* Defintions
*/
#define I2C_SLAVE_ADDR (0x9E) // Temperature sensor I2c address
/*
* Stucture/enum definitions
*/
typedef enum i2c_states {
s_i2c_init, // I2C init
s_i2c_start, // I2C start ok
s_i2c_addr_w, // I2C slave address (write action)
s_i2c_data_w, // I2C write data
s_i2c_restart, // I2C repeated start ok
s_i2c_addr_r, // I2C slave address (read action)
s_i2c_data_r1, // I2C read MSB
s_i2c_ack_r1, // I2C acknowledge read MSB
s_i2c_data_r2, // I2C read LSB
s_i2c_ack_r2, // I2C acknowledge read MSB
s_i2c_stop // I2C stop condition ok
};
/*
* Prototypes
*/
extern unsigned int i2c_temp;
extern unsigned char i2c_state;
extern void Read_Temp (void);
extern void I2C_init (void);
extern void I2C_ISR (void);
extern void I2C_collision_ISR (void);
#endif