工具与软件:
如果在工作台上使用 LAUNCHXL-CC1312R1和 TDK InvenSense ICM -20689 6轴 MEM 分线板、在尝试访问传感器的所有12个寄存器时会出现以下错误、并且最多只能访问6个寄存器而没有错误。 在运行任务测试图时、如何修改以下代码以访问所有12个寄存器(如果可能)并同时查看 accel 和 gyro?
////////////////////////////////////////////////////////////// ERROR///////////////////////////////////////////////////
错误:并发寄存器变量过多、冲突涉及:accelZ_LSB、accelY、accelX、gyroZ_LSB、 回转 Z_MSB、回转 Y_LSB、回转 Y_MSB、回转 X_LSB、回转 X_MSB、 accelZ_msb、accelY_LSB、accelY_MSB、accelX_LSB、accelX_MSB、 accelZ
////////////////////////////////////////////////////////////////// Sensor Controller Studio 代码////////////////////////////////////////////
U16 accelX_MSB; U16 accelX_LSB; U16 accelY_MSB; U16 accelY_LSB; U16 accelZ_MSB; U16 accelZ_LSB; U16 gyroX_MSB; U16 gyroX_LSB; U16 gyroY_MSB; U16 gyroY_LSB; U16 gyroZ_MSB; U16 gyroZ_LSB; i2cDeviceWriteReg8((ICM20689_I2C_ADDR << 1), ICM20689_WHO_AM_I, 0x98); i2cDeviceWriteReg8((ICM20689_I2C_ADDR << 1), PWR_MGMT_1, 0x00); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), ACCEL_XOUT_H; accelX_MSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), ACCEL_XOUT_L; accelX_LSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), ACCEL_YOUT_H; accelY_MSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), ACCEL_YOUT_L; accelY_LSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), ACCEL_ZOUT_H; accelZ_MSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), ACCEL_ZOUT_L; accelZ_LSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), GYRO_XOUT_H; gyroX_MSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), GYRO_XOUT_L; gyroX_LSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), GYRO_YOUT_H; gyroY_MSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), GYRO_YOUT_L; gyroY_LSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), GYRO_ZOUT_H; gyroZ_MSB); i2cDeviceReadReg8((ICM20689_I2C_ADDR << 1), GYRO_ZOUT_L; gyroZ_LSB); U16 accelX = (accelX_MSB << 8) | accelX_LSB; U16 accelY = (accelY_MSB << 8) | accelY_LSB; U16 accelZ = (accelZ_MSB << 8) | accelZ_LSB; U16 gyroX = (gyroX_MSB << 8) | gyroX_LSB; U16 gyroY = (gyroY_MSB << 8) | gyroY_LSB; U16 gyroZ = (gyroZ_MSB << 8) | gyroZ_LSB; output.ax = accelX; output.ay = accelY; output.az = accelZ; output.gx = gyroX; output.gy = gyroY; output.gz = gyroZ;