29 lines
760 B
C
29 lines
760 B
C
//
|
|
// Created by xemon on 12.10.22.
|
|
//
|
|
|
|
#ifndef UVEOS_ON_NATION_I2CPORTINTERFACE_H
|
|
#define UVEOS_ON_NATION_I2CPORTINTERFACE_H
|
|
|
|
#include "stdint.h"
|
|
|
|
//typedef enum {
|
|
// I2C_RW_OK = 0x00U,
|
|
// I2C_RW_ERROR = 0x01U,
|
|
// I2C_RW_BUSY = 0x02U,
|
|
// I2C_RW_TIMEOUT = 0x03U
|
|
//} I2cIOResult;
|
|
|
|
typedef uint16_t ( *I2C_IO_Operation )(void *env, uint16_t devAddress, uint8_t *data, uint16_t size, uint32_t timeout);
|
|
|
|
typedef struct {
|
|
void *env;
|
|
I2C_IO_Operation read;
|
|
I2C_IO_Operation write;
|
|
} tI2cIO;
|
|
|
|
#define I2cRead(IO, DEV_ADDR, DATA, SIZE, TIMEOUT) IO->read((IO)->env,DEV_ADDR, DATA, SIZE, TIMEOUT)
|
|
#define I2cWrite(IO, DEV_ADDR, DATA, SIZE, TIMEOUT) IO->write((IO)->env,DEV_ADDR, DATA, SIZE, TIMEOUT)
|
|
|
|
#endif //UVEOS_ON_NATION_I2CPORTINTERFACE_H
|