34 lines
788 B
C
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
|