[Tinyos-devel] Sleep interval and duty cycle in CC2420

Andreas Köpke koepke at tkn.tu-berlin.de
Wed Dec 17 02:50:25 PST 2008


Hi guys, 

the sleep interval computation suffers from an integer overflow bug at least for 
telosb. I'd like to check in the attached fix. 

Best, Andreas

*** DefaultLplP.nc	24 Jun 2008 16:26:28 +0200	1.5
--- DefaultLplP.nc	17 Dez 2008 11:39:23 +0100	
***************
*** 230,236 ****
        return 0;
      }
      
!     return (DUTY_ON_TIME * (10000 - dutyCycle)) / dutyCycle;
    }
    
    /**
--- 230,236 ----
        return 0;
      }
      
!     return ((uint32_t)DUTY_ON_TIME * (10000 - dutyCycle)) / dutyCycle;
    }
    
    /**
***************
*** 245,251 ****
        return 10000;
      }
      
!     return getActualDutyCycle((DUTY_ON_TIME * 10000) 
          / (sleepInterval + DUTY_ON_TIME));
    }
  
--- 245,251 ----
        return 10000;
      }
      
!     return getActualDutyCycle(((uint32_t)DUTY_ON_TIME * 10000) 
          / (sleepInterval + DUTY_ON_TIME));
    }
  



More information about the Tinyos-devel mailing list