There is an anomalies behavior that the ADT7310 can show that you have o avoid if you want it to work as expected.
A. If you configure the ADT7310 for One Shot mode and then wait more that 240 mS and then read the temperature register it works ok. The sequence is as follows:
B. If you do the same as above but also includes a read to the status register to check the NRDY bit and if it is set read out the temperature register it also works ok (mostly).
Same setup as in B but this time change the sensor temperature, by blowing on it, hold your fingers on it etc., to get a clear significant temperature step. The sensor will lockup and you have to make a total reset to get back to a working condition again.
When the sensor is ”locked” you get the picture as below. This should not be possible. As far as I can see the data sheet don’t say anything about that the B scenario is forbidden. I do understand that the sensor goes to a low power mode after doing a conversion in One Shot mode and that there are implications of that.
A conversion will only start on step 2, can you debug your program step-by-step? Can you make sure if the step 2 is hit periodically? Otherwise, if it keeps looping between steps 5 and 4, no conversion will never start and hence the temperature readback would hang-up.
Note that in one-shot mode, the /RDY bit is not reset after reading the temperature value but the one-shot is written, just in case it could have implications here.