From: idgay Date: Fri, 11 Aug 2006 20:48:19 +0000 (+0000) Subject: add timer 0 threshold for ext standby vs power save sleep mode selection X-Git-Tag: tinyos/2.0.1~289 X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=commitdiff_plain;h=c697f532eaadadfafb362a86fff94b9ccc6d7f74;p=tinyos-2.x.git add timer 0 threshold for ext standby vs power save sleep mode selection --- diff --git a/tos/platforms/mica/MicaTimer.h b/tos/platforms/mica/MicaTimer.h index 63a6a164..548ffd95 100644 --- a/tos/platforms/mica/MicaTimer.h +++ b/tos/platforms/mica/MicaTimer.h @@ -29,10 +29,17 @@ the platform's MHZ rate. Note that the timers thus obtained will not be exactly at 32768Hz or - 1MHz, because the clock doesn't divide by a power of two to those frequencies, - and/or the clock frequency is not accurate. If you need more accurate timing, - you should use the calibration functions offered by the Atm128Calibrate interface - provided by PlatformC. + 1MHz, because the clock doesn't divide by a power of two to those + frequencies, and/or the clock frequency is not accurate. If you need + more accurate timing, you should use the calibration functions + offered by the Atm128Calibrate interface provided by PlatformC. + + This file also defines EXT_STANDBY_T0_THRESHOLD, a threshold on + remaining time till the next timer 0 interrupt under which the mote + should sleep in ext standby rather than power save. This is only + important when not using the internal oscillator. Wake up from power + save takes 65536 cycles (6 cycles for ext standby), which is, e.g., + ~9.4ms at 7Mhz. */ #include @@ -64,7 +71,8 @@ enum { MICA_PRESCALER_ONE = ATM128_CLK16_DIVIDE_8, MICA_DIVIDE_ONE_FOR_32KHZ_LOG2 = 2, MICA_PRESCALER_THREE = ATM128_CLK16_NORMAL, - MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 0 + MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 0, + EXT_STANDBY_T0_THRESHOLD = 80, }; #elif MHZ == 2 @@ -77,7 +85,8 @@ enum { MICA_PRESCALER_ONE = ATM128_CLK16_DIVIDE_64, MICA_DIVIDE_ONE_FOR_32KHZ_LOG2 = 0, MICA_PRESCALER_THREE = ATM128_CLK16_NORMAL, - MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 1 + MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 1, + EXT_STANDBY_T0_THRESHOLD = 40 }; #elif MHZ == 4 @@ -90,7 +99,8 @@ enum { MICA_PRESCALER_ONE = ATM128_CLK16_DIVIDE_64, MICA_DIVIDE_ONE_FOR_32KHZ_LOG2 = 1, MICA_PRESCALER_THREE = ATM128_CLK16_NORMAL, - MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 2 + MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 2, + EXT_STANDBY_T0_THRESHOLD = 24 }; #elif MHZ == 8 @@ -103,7 +113,8 @@ enum { MICA_PRESCALER_ONE = ATM128_CLK16_DIVIDE_256, MICA_DIVIDE_ONE_FOR_32KHZ_LOG2 = 0, MICA_PRESCALER_THREE = ATM128_CLK16_DIVIDE_8, - MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 0 + MICA_DIVIDE_THREE_FOR_MICRO_LOG2 = 0, + EXT_STANDBY_T0_THRESHOLD = 12 }; #else diff --git a/tos/platforms/mica2/hardware.h b/tos/platforms/mica2/hardware.h index 54a81d29..28bf7085 100644 --- a/tos/platforms/mica2/hardware.h +++ b/tos/platforms/mica2/hardware.h @@ -41,8 +41,15 @@ #ifndef HARDWARE_H #define HARDWARE_H +#ifndef MHZ +/* Clock rate is ~8MHz except if specified by user + (this value must be a power of 2, see MicaTimer.h and MeasureClockC.nc) */ +#define MHZ 8 +#endif + #include #include +#include // A/D channels enum { @@ -51,12 +58,6 @@ enum { CHANNEL_BATTERY = ATM128_ADC_SNGL_ADC7, }; -#ifndef MHZ -/* Clock rate is ~8MHz except if specified by user - (this value must be a power of 2, see MicaTimer.h and MeasureClockC.nc) */ -#define MHZ 8 -#endif - enum { PLATFORM_BAUDRATE = 57600L }; diff --git a/tos/platforms/mica2dot/hardware.h b/tos/platforms/mica2dot/hardware.h index f2e9c07a..918514f3 100644 --- a/tos/platforms/mica2dot/hardware.h +++ b/tos/platforms/mica2dot/hardware.h @@ -41,8 +41,15 @@ #ifndef HARDWARE_H #define HARDWARE_H +#ifndef MHZ +/* Clock rate is 4MHz except if specified by user + (this value must be a power of 2, see MicaTimer.h and MeasureClockC.nc) */ +#define MHZ 4 +#endif + #include #include +#include // A/D channels enum { @@ -50,12 +57,6 @@ enum { CHANNEL_BATTERY_THERMISTOR = ATM128_ADC_SNGL_ADC1 }; -#ifndef MHZ -/* Clock rate is 4MHz except if specified by user - (this value must be a power of 2, see MicaTimer.h and MeasureClockC.nc) */ -#define MHZ 4 -#endif - enum { PLATFORM_BAUDRATE = 19200L }; diff --git a/tos/platforms/micaz/hardware.h b/tos/platforms/micaz/hardware.h index caba7f0c..1720f58e 100644 --- a/tos/platforms/micaz/hardware.h +++ b/tos/platforms/micaz/hardware.h @@ -49,6 +49,7 @@ #include #include +#include // A/D channels enum {