From f8120ec47efebf578a6edf99882d009ea6dedcd1 Mon Sep 17 00:00:00 2001 From: kusy Date: Wed, 13 Aug 2008 07:37:05 +0000 Subject: [PATCH] Fixing T32khz to TMilli conversion - coeficient 32 needs to be changed to 28.1. --- tos/chips/cc2420/packet/CC2420PacketP.nc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tos/chips/cc2420/packet/CC2420PacketP.nc b/tos/chips/cc2420/packet/CC2420PacketP.nc index 0a730484..f0c2e384 100644 --- a/tos/chips/cc2420/packet/CC2420PacketP.nc +++ b/tos/chips/cc2420/packet/CC2420PacketP.nc @@ -138,10 +138,13 @@ implementation { return call PacketTimeStamp32khz.isValid(msg); } + //timestmap is always represented in 32khz + //28.1 is coefficient difference between T32khz and TMilli on MicaZ async command uint32_t PacketTimeStampMilli.timestamp(message_t* msg) { - int32_t offset = call PacketTimeStamp32khz.timestamp(msg) - call LocalTime32khz.get(); - return (offset >> 5) + call LocalTimeMilli.get(); + int32_t offset = (call LocalTime32khz.get()-call PacketTimeStamp32khz.timestamp(msg)); + offset/=28.1; + return call LocalTimeMilli.get() - offset; } async command void PacketTimeStampMilli.clear(message_t* msg) -- 2.39.2