There is something wrong with your conversion.
First - the numbers are not in order.
Second - I’ve converted your dec numbers back to hex and got
F8C720F9C240
F98140F9A820
FBAD60FAE540
FAE240F8C3A8
F8F9C0FBEDE0
F9EAC0F9E008
F904A0FB0B80
You are right, my bad…
Please correct me if i am wrong. When i request the systemtime of the dwm1000 module at a constant rate of once every 0.2008653333 s(measured with logic analyzer). These are a part of the responses:
Can someone explain these times? Why are these times not constant as they are requested a precise interval?
is it correct that these to assume that these are ticks of the 64 ghz clock. So that every tick is
1/(63.8976 * 1000000000) seconds long?
There are no messages coming in on the dwm1000, i use the function dwt_readsystime();
I use stm32f103RBT6 with a ported dw1000 library. And i use keil as an editor.
From you dump I can see the first 4 timestamps, so if I calculate 3 time differences.
I have:
25607383808
26382851073
25710278911
In seconds:
0.400115372
0.412232048
0.401723108
So my conclusion is: you have two issues - with SPI reading and with converting raw timestamp data to decimal.
First - you read data seems to be correct except scaled twice (0.4s instead of 0.2s as expected) - read data is shifted one bit. I suggest check SPI clock/data polarity.
Second - you cannot simply concatenate decimal bytes to get a timestamp. It’s actually 5 binary octets, like uint8_t timestamp[5].
To get timestamp use this code (5 bytes don’t fit into standard uint32_t obviously):