SRA Board Components
ESP-IDF component for SRA Board
Macros | Functions
i2cdev.c File Reference
#include <string.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <esp_log.h>
#include "i2cdev.h"
Include dependency graph for i2cdev.c:

Macros

#define SEMAPHORE_TAKE(port)
 
#define SEMAPHORE_GIVE(port)
 

Functions

esp_err_t i2cdev_init ()
 Init library. More...
 
esp_err_t i2cdev_done ()
 Finish work with library. More...
 
esp_err_t i2c_dev_create_mutex (i2c_dev_t *dev)
 Create mutex for device descriptor. More...
 
esp_err_t i2c_dev_delete_mutex (i2c_dev_t *dev)
 Delete mutex for device descriptor. More...
 
esp_err_t i2c_dev_take_mutex (i2c_dev_t *dev)
 Take device mutex. More...
 
esp_err_t i2c_dev_give_mutex (i2c_dev_t *dev)
 Give device mutex. More...
 
esp_err_t i2c_dev_read (const i2c_dev_t *dev, const void *out_data, size_t out_size, void *in_data, size_t in_size)
 Read from slave device. More...
 
esp_err_t i2c_dev_write (const i2c_dev_t *dev, const void *out_reg, size_t out_reg_size, const void *out_data, size_t out_size)
 Write to slave device. More...
 
esp_err_t i2c_dev_read_reg (const i2c_dev_t *dev, uint8_t reg, void *in_data, size_t in_size)
 Read from register with an 8-bit address. More...
 
esp_err_t i2c_dev_write_reg (const i2c_dev_t *dev, uint8_t reg, const void *out_data, size_t out_size)
 Write to register with an 8-bit address. More...
 

Detailed Description

ESP-IDF I2C master thread-safe functions for communication with I2C slave

Copyright (c) 2018 Ruslan V. Uss uncle.nosp@m.rus@.nosp@m.gmail.nosp@m..com

MIT Licensed as described in the file LICENSE

Macro Definition Documentation

◆ SEMAPHORE_GIVE

#define SEMAPHORE_GIVE (   port)
Value:
do { \
if (!xSemaphoreGive(states[port].lock)) \
{ \
ESP_LOGE(TAG, "Could not give port mutex %d", port); \
return ESP_FAIL; \
} \
} while (0)
#define TAG
Definition: lvgl_helpers.c:21

◆ SEMAPHORE_TAKE

#define SEMAPHORE_TAKE (   port)
Value:
do { \
if (!xSemaphoreTake(states[port].lock, pdMS_TO_TICKS(CONFIG_I2CDEV_TIMEOUT))) \
{ \
ESP_LOGE(TAG, "Could not take port mutex %d", port); \
return ESP_ERR_TIMEOUT; \
} \
} while (0)