IoT_SCV_CH584M/bsp/inc/bsp_bmp390.h

120 lines
3.7 KiB
C

#ifndef __BSP_BMP390_H
#define __BSP_BMP390_H
#include "CH58x_common.h"
#define BMP390_IN_START (0x0001 << 0)
#define BMP390_OUT_START (0x0001 << 1)
#define BMP390_ATOM_START (0x0001 << 2)
#define BMP390_EVT_READ (0x0001 << 3)
#define BMP390_IN_READ (0x0001 << 4)
#define BMP390_OUT_READ (0x0001 << 5)
#define BMP390_ATOM_READ (0x0001 << 6)
#define CHECK_EVT_START (0x0001 << 0)
#define MOTOR_STOP_EVT (0x0001 << 1)
void PRESS_LowPower(void);
void BSP_PRESS_Init(void);
void Function_Check(void);
#include "bmp3.h"
/*!
* @brief Function to select the interface between SPI and I2C.
*
* @param[in] bmp3 : Structure instance of bmp3_dev
* @param[in] intf : Interface selection parameter
*
* @return Status of execution
* @retval 0 -> Success
* @retval < 0 -> Failure Info
*/
BMP3_INTF_RET_TYPE BMP390_OUT_InterfaceInit(struct bmp3_dev *bmp3, uint8_t intf);
/*!
* @brief Function for reading the sensor's registers through I2C bus.
*
* @param[in] reg_addr : Register address.
* @param[out] reg_data : Pointer to the data buffer to store the read data.
* @param[in] len : No of bytes to read.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE bmp3_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for writing the sensor's registers through I2C bus.
*
* @param[in] reg_addr : Register address.
* @param[in] reg_data : Pointer to the data buffer whose value is to be written.
* @param[in] len : No of bytes to write.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE bmp3_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for reading the sensor's registers through SPI bus.
*
* @param[in] reg_addr : Register address.
* @param[out] reg_data : Pointer to the data buffer to store the read data.
* @param[in] len : No of bytes to read.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE BMP390_OUT_SPI_Read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for writing the sensor's registers through SPI bus.
*
* @param[in] reg_addr : Register address.
* @param[in] reg_data : Pointer to the data buffer whose data has to be written.
* @param[in] len : No of bytes to write.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE BMP390_OUT_SPI_Write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief This function provides the delay for required time (Microsecond) as per the input provided in some of the
* APIs.
*
* @param[in] period : The required wait time in microsecond.
* @param[in] intf_ptr : Interface pointer
*
* @return void.
*
*/
void bmp3_delay_us(uint32_t period, void *intf_ptr);
/*!
* @brief Prints the execution status of the APIs.
*
* @param[in] api_name : Name of the API whose execution status has to be printed.
* @param[in] rslt : Error code returned by the API whose execution status has to be printed.
*
* @return void.
*/
void bmp3_check_rslt(const char api_name[], int8_t rslt);
#endif