#pragma once #ifndef I2C_H #define I2C_H #include "stm8s.h" #define I2C_FAST 1 #define F_MASTER_MHZ 16UL #define F_MASTER_HZ 16000000UL #ifdef I2C_FAST //400 кГц #define F_I2C_HZ 400000UL #else //100 кГц #define F_I2C_HZ 100000UL #endif // I2C_FAST //Результат выполнения операции с i2c typedef enum { I2C_SUCCESS = 0, I2C_TIMEOUT, I2C_ERROR } t_i2c_status; // Инициализация I2C интерфейса extern void i2c_master_init(void); // Запись регистра slave-устройства extern t_i2c_status i2c_wr_reg(uint8_t address, uint8_t reg_addr, uint16_t data); // Чтение регистра slave-устройства extern t_i2c_status i2c_rd_reg(uint8_t address, uint8_t reg_addr, uint16_t * data); #endif // I2C_H