Files
drybox-core/src/bus/i2c.h

34 lines
788 B
C

#ifndef MAD_CORE_BUS_I2C_H
#define MAD_CORE_BUS_I2C_H
#include "common/types.h"
// I2C multiplexer channels
#define AHT01 0x0 // Lower
#define AHT02 0x1 // Middle
#define AHT03 0x2 // Upper
// ADC channels
#define ADS01 0x0 // AIN0 GND
#define ADS02 0x1 // AIN1 GND
#define ADS03 0x2 // AIN2 GND
#define ADS04 0x3 // AIN3 GND
int I2C_Init(void);
int I2C_Start(byte addr, byte mode);
int I2C_SetChannel(int channel);
int I2C_Write(byte data);
byte I2C_Read_ACK(void);
byte I2C_Read_NACK(void);
int I2C_Wait_ACK(void);
int I2C_Stop(void);
// AHT20 temperature and humidity sensor
int I2C_AHT20_Init(void);
int I2C_AHT20_Read(float *temp, float *rhum);
// ADS1115 analog to digital converter
word I2C_ADS1115_ReadRaw(int channel);
#endif // MAD_CORE_BUS_I2C_H