#include "cyhal.h"
#include "cybsp.h"
#include "cy_retarget_io.h"
#include "mtb_bmi160.h"
cyhal_i2c_t i2c;
cyhal_i2c_cfg_t i2c_cfg = {
.is_slave = false,
.address = 0,
.frequencyhal_hz = 400000
};
#define IMU_I2C_SDA (?)
#define IMU_I2C_SCL (?)
int main(void)
{
cy_rslt_t result;
result = cybsp_init();
CY_ASSERT(result == CY_RSLT_SUCCESS);
__enable_irq();
result = cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);
CY_ASSERT(result == CY_RSLT_SUCCESS);
result = cyhal_i2c_init(&i2c, IMU_I2C_SDA, IMU_I2C_SCL, NULL);
CY_ASSERT(result == CY_RSLT_SUCCESS);
result = cyhal_i2c_configure(&i2c, &i2c_cfg);
CY_ASSERT(result == CY_RSLT_SUCCESS);
CY_ASSERT(result == CY_RSLT_SUCCESS);
for (;;)
{
printf(
"Accel: X:%6d Y:%6d Z:%6d\r\n", data.
accel.x, data.
accel.y, data.
accel.z);
printf(
"Gyro : X:%6d Y:%6d Z:%6d\r\n\r\n", data.
gyro.x, data.
gyro.y, data.
gyro.z);
cyhal_system_delay_ms(1000);
}
}
struct bmi160_sensor_data gyro
Gyroscope data.
Definition: mtb_bmi160.h:98
struct bmi160_sensor_data accel
Accelerometer data.
Definition: mtb_bmi160.h:96
cy_rslt_t mtb_bmi160_read(mtb_bmi160_t *obj, mtb_bmi160_data_t *sensor_data)
Reads the current accelerometer & gyroscope data from the motion sensor.
Definition: mtb_bmi160.c:313
cy_rslt_t mtb_bmi160_init_i2c(mtb_bmi160_t *obj, cyhal_i2c_t *inst, mtb_bmi160_address_t address)
Initialize the IMU for I2C communication.
Definition: mtb_bmi160.c:228
Structure holding the accelerometer and gyroscope data read from the device.
Definition: mtb_bmi160.h:94
Structure holding the IMU instance specific information.
Definition: mtb_bmi160.h:86