c2a-core 4.5.1

Core of Command Centric Architecture
Documentation
/**
 * @file
 * @brief I2C 通信関連の一般 IO 以外の公開関数
 * @note レジスタの読み書き等,ハードウェアに依存しない関数群を定義する
 */

#ifndef I2C_COMMON_H_
#define I2C_COMMON_H_

#include "../component_driver/driver_super.h"
#include "i2c.h"

/**
 * @brief I2C_Config 構造体にて指定されたデバイスのレジスタへ 1 バイトデータを書き込む
 * @param[in] p_super  : ComponentDriverSuper 構造体へのポインタ
 * @param[in] stream   : 使用する stream_config の番号
 * @param[in] p_i2c_config : 対象とする I2C_Config 構造体へのポインタ
 * @param[in] register_address : 書き込むレジスタのアドレス
 * @param[in] data     : 書き込むデータ
 * @retval CDS_ERR_CODE (CDS_send_general_cmd の返り値)
 */
CDS_ERR_CODE I2C_write_byte(ComponentDriverSuper* p_super, uint8_t stream, I2C_Config* p_i2c_config,
                            uint8_t register_address, uint8_t data);

/**
 * @brief I2C_Config 構造体にて指定されたデバイスのレジスタへ 2 バイトデータを書き込む
 * @param[in] p_super  : ComponentDriverSuper 構造体へのポインタ
 * @param[in] stream   : 使用する stream_config の番号
 * @param[in] p_i2c_config : 対象とする I2C_Config 構造体へのポインタ
 * @param[in] register_address : 書き込むレジスタのアドレス
 * @param[in] data     : 書き込むデータ
 * @retval CDS_ERR_CODE (CDS_send_general_cmd の返り値)
 */
CDS_ERR_CODE I2C_write_2bytes(ComponentDriverSuper* p_super, uint8_t stream, I2C_Config* p_i2c_config,
                              uint8_t register_address, uint16_t data);

/**
 * @brief I2C_Config 構造体にて指定されたデバイスのレジスタから 1 バイトデータを読み込む
 * @param[in] p_super  : ComponentDriverSuper 構造体へのポインタ
 * @param[in] stream   : 使用する stream_config の番号
 * @param[in] p_i2c_config : 対象とする I2C_Config 構造体へのポインタ
 * @param[in] register_address : 読み込むレジスタのアドレス
 * @param[out] data_v  : データ格納先へのポインタ
 * @retval CDS_ERR_CODE
 */
CDS_ERR_CODE I2C_read_byte(ComponentDriverSuper* p_super, uint8_t stream, I2C_Config* p_i2c_config,
                           uint8_t register_address, uint8_t* data_v);

/**
 * @brief I2C_Config 構造体にて指定されたデバイスのレジスタから 2 バイトデータを読み込む
 * @param[in] p_super  : ComponentDriverSuper 構造体へのポインタ
 * @param[in] stream   : 使用する stream_config の番号
 * @param[in] p_i2c_config : 対象とする I2C_Config 構造体へのポインタ
 * @param[in] register_address : 読み込むレジスタのアドレス
 * @param[out] data_v  : データ格納先へのポインタ
 * @retval CDS_ERR_CODE
 */
CDS_ERR_CODE I2C_read_2bytes(ComponentDriverSuper* p_super, uint8_t stream, I2C_Config* p_i2c_config,
                             uint8_t register_address, uint16_t* data_v);

#endif