Hi I am facing some issues when I use ADXL362 without interrupts.
I am performing the following register operations.
1) Soft reset: Write 0x52 to register 0x1F
2) Delay of 10ms.
2) Filter control register: write 0x83 to 0x2C (8g sensitivity @ 100Hz)
3) Power control register: write 0x02 to 0x2D (Measurement mode)
4) Delay of 50ms. (5/ODR which is greater than 4/ODR mentioned in datasheet)
5) I am polling the DATA_READY bit (bit 0) of status register (0x0B) to check for new data.
If there is new data, I read the registers 0x0E to 0x13.
start_profile(); //Start the timer for profilng
while((getSTATUS_ADXL362() & PRM_DATA_READY) != PRM_DATA_READY);
stop_profile(); //Stop the timer and display the time taken.
Now here is the problem: The profile results indicate that for the first few samples, the time taken for polling is less than 10ms (corresponding to 100Hz ODR). The profile results in ms are
0 (expected since the data will be ready)
The behavior is same even if I remove the 50ms delay(Step 4).
Also, for higher ODR, it takes more number of samples to settle down.
Is this expected behavior? Also, would these first few samples be accurate?
Also, in page 25 of the datasheet, it is mentioned that the DATA_READY bit is cleared when a FIFO read is performed. Isn't it supposed to be cleared when any data register is read?