45 lines
522 B
C++
45 lines
522 B
C++
//
|
|
// Created by Luca on 9/9/2025.
|
|
//
|
|
|
|
#ifndef SHMINGO_HAL_SHAL_I2C_H
|
|
#define SHMINGO_HAL_SHAL_I2C_H
|
|
|
|
#include "SHAL_CORE.h"
|
|
#include "SHAL_I2C_REG.h"
|
|
|
|
|
|
class SHAL_I2C{
|
|
|
|
friend class I2CManager;
|
|
|
|
public:
|
|
|
|
private:
|
|
|
|
SHAL_I2C() = default;
|
|
|
|
I2C_Pair m_I2CPair = I2C_Pair::INVALID; //Initialize to invalid
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class I2CManager{
|
|
|
|
public:
|
|
|
|
static SHAL_I2C& get(uint8_t i2c);
|
|
|
|
I2CManager() = delete;
|
|
|
|
private:
|
|
|
|
inline static SHAL_I2C m_UARTs[NUM_I2C_BUSES] = {};
|
|
|
|
};
|
|
|
|
#endif //SHMINGO_HAL_SHAL_I2C_H
|