Hi @PArve.1 ,
as you noticed, unfortunately the H3LIS100DL device is not provided by a FIFO and -in general- an internal buffer for the storage.
>> Unfortunately it takes the MCU about 8ms before it has woken up and is ready to read back the samples (X,Y,Z) that caused the interrupt.
Before waking up, the H3LIS100DL is in low power state (cfr CTRL_REG5 (24h) register in the datasheet, p. 29), so that you have maximum ODR of 10Hz, and the interrupt event lasts at least 1/ODR, giving you the 8ms delay you are experiencing.
Having the low power set, data are available in the dataout registers, and if you are interested in characterizing the mechanica event that wake up the MCU you could acquire at least once this event in low power mode by the MCU (instead leaving MCU in sleep mode, so preventing it from acquiring data).
But if the MCU is in sleep mode and is activated only by the event, the only information about the interrupt you could retrospectively gain is the fact that 8ms before the MCU is waken up by a mechanical event that exceeded the threshold for 1/ODR (at least), or for the duration you can set in the register INT1_DURATION (33h). This is the predefined minimum event duration, and you can characterize it at the beginning of your experiments if the mechanical trigger is repeatable. I'm afraid is not possible to retrieve data of an event in the past if the MCU is sleeping and is the only processor acquiring H3LIS100DL data.
For completeness, the BDU bit is the block data update bit: if you enable it and you don't refresh the out registers by reading them (in I2C or SPI), the register content will remain the one it was at the beginning of the data production. So I believe it is not possible to use this bit to retrieve data near the event...
Please let me know if this answer can someway help you.
-Eleon