Interrupt line not being cleared
I'm using an H3LIS331DL chip, and relying on the set threshold to trigger an interrupt and go read the data.
Everything is working fine, except occasionally it will freeze and stop reading anything. On investigation, I found the interrupt output line was getting stuck in the high state, even after reading the INT1_SRC register. Reading the register again at a MUCH later time (5 seconds, for example) will clear the interrupt and continue operation.
Img1. A normal data sequence. The interrupt triggers. I read all 6 data registers. I set a new threshold (increase by +1 each interrupt). I read the INT1_SRC register, and the interrupt clears.

Img2. Zoom in at the end of a normal sequence. I've added a second read of the INT1_SRC register as an example to show the IA bit is successfully cleared. Read data went from 0x59 (0b01011001) to 0x19 (0b00011001).

Img3. Fault sequence. Again the interrupt is triggered, the data is read, a new threshold is set. But this time, upon reading the INT1_SRC register the interrupt does not clear.

Img4. Zoom in at end of fault sequence. Again, a second INT1_SRC read was added to show the remaining contents. Even after 2 reads of the register, IA remains active and the interrupt is not cleared. Read data remains 0x59 (0b01011001).

It seems that this happens when two sequential data samples are above the threshold. Rather than clearing after the first interrupt, and then giving a rising edge for the second... it just remains high throughout. This means the ISR is not service on the second interrupt and it gets stuck in the high state.
The easiest way for me to repeat the fault is to set the interrupt threshold to <1G. In this state, I would expect it to continuously trigger at the ODR. But instead, it triggers exactly 1 interrupt and latches high every time.
Any suggestions are appreciated.
