38 lines
1.3 KiB
C
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 |