I have an application that requires that timestamps be 64-bit epoch to the millisecond. I'm currently using a Timer peripheral to track 1ms and increment a 64-bit counter. I was concerned reading the value in an atomic way so I am currently disabling all interrupts when a read is performed but this seems to be pretty heavy handed.
I saw this post https://devzone.nordicsemi.com/f/nordic-q-a/27597/extending-rtc-beyond-24-bits and it seem likes it's better just to disable the timer interrupt.
I noticed the driver API also clears the current timer value when the interrupts are enabled. Is there a reason for this?
Is there are better way to achieve the atomic read than my current implementation?
Thanks,