X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Ftda5250%2Fmac%2FCsmaMacP.nc;fp=tos%2Fchips%2Ftda5250%2Fmac%2FCsmaMacP.nc;h=ec790e743cddf87a9fbe930b175d470b446bf753;hb=51db927a421fd91ba610a9fdc80790b4c7775e38;hp=46c19d3f00ade28edadea12a44a6d46a3bf95847;hpb=f139d40721e23194dd9e8f84e3652212ac990e36;p=tinyos-2.x.git diff --git a/tos/chips/tda5250/mac/CsmaMacP.nc b/tos/chips/tda5250/mac/CsmaMacP.nc index 46c19d3f..ec790e74 100644 --- a/tos/chips/tda5250/mac/CsmaMacP.nc +++ b/tos/chips/tda5250/mac/CsmaMacP.nc @@ -72,6 +72,7 @@ module CsmaMacP { interface Timer as ReRxTimer; interface Duplicate; + interface TimeDiff16; interface Alarm as Timer; async command am_addr_t amAddress(); @@ -303,17 +304,9 @@ implementation } void interruptBackoffTimer() { - uint16_t now; if(call Timer.isRunning()) { - restLaufzeit = call Timer.getAlarm(); + restLaufzeit = call TimeDiff16.computeDelta(call Timer.getAlarm(), call Timer.getNow()); call Timer.stop(); - now = call Timer.getNow(); - if(restLaufzeit >= now) { - restLaufzeit = restLaufzeit - now; - } - else { - restLaufzeit = (uint16_t)(-1) - restLaufzeit + now; - } if(restLaufzeit > BACKOFF_MASK) { restLaufzeit = call Random.rand16() & 0xFF; }