hardphoenix/MC3416

BUG: Read-out of XYZ values.

Opened this issue · 1 comments

Hi!

Thanks for the great work on setting up this module.
However I think I have found a problem in your implementation.

If the accelerometer is free running (Active) and you use "MC34xx_Get_XYZ_Float" in a polling mode you can have the situation that the register contents changes to new samples while reading.

Explanation:
You use 6 seperate I2C reads to read XH, XL, YH, YL, ZH and ZL in "MC34xx_Get_XYZ_Float"

The datasheet states that the register content does not change during I2C read (Chapter 11) of PDF.
However your code uses 6 reads. So you are unsure if those 6 registers belong to eachother.

In my oppineon you should use only 1 I2C command to read 6 bytes at once.

Kind regards,

Remon Dijkstra.

p.s. same goes for function "MC34xx_Get_XYZ_RowData"