From: liang_mike Date: Thu, 11 Sep 2008 19:59:50 +0000 (+0000) Subject: TOSthreads support for reading MSP430 internal voltage and temperature X-Git-Tag: rc_6_tinyos_2_1_1~622 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=585bbc3b0e97003de4390e4a49805b773262c665 TOSthreads support for reading MSP430 internal voltage and temperature --- diff --git a/support/make/threads.extra b/support/make/threads.extra index 0024d3c1..fc88c98a 100644 --- a/support/make/threads.extra +++ b/support/make/threads.extra @@ -19,6 +19,7 @@ PFLAGS += -tosscheduler=TinyTaskSchedulerC,TinyTaskSchedulerC.TaskBasic,TaskBasi THREADS_MSP430_DIR = $(TOS_THREADS_DIR)/chips/msp430 THREADS_MSP430_INCLUDE_DIRS = -I$(THREADS_MSP430_DIR) THREADS_MSP430_INCLUDE_DIRS += -I$(THREADS_MSP430_DIR)/adc12 +THREADS_MSP430_INCLUDE_DIRS += -I$(THREADS_MSP430_DIR)/sensors #Atm128 specific include directories on tested platforms THREADS_ATM128_DIR = $(TOS_THREADS_DIR)/chips/atm128 diff --git a/tos/lib/tosthreads/chips/msp430/sensors/BlockingMsp430InternalTemperatureC.nc b/tos/lib/tosthreads/chips/msp430/sensors/BlockingMsp430InternalTemperatureC.nc new file mode 100644 index 00000000..305f9b70 --- /dev/null +++ b/tos/lib/tosthreads/chips/msp430/sensors/BlockingMsp430InternalTemperatureC.nc @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2005-2006 Arch Rock Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * - Neither the name of the Arch Rock Corporation nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE + */ + +/** + * Msp430InternalTemperatureC is the temperature sensor available on + * the msp430-based platforms. + * + * To convert from ADC counts to temperature, convert to voltage by + * dividing by 4096 and multiplying by Vref (1.5V). Then subtract + * 0.986 from voltage and divide by 0.00355 to get degrees C. + * + * @author Gilman Tolle + * @version $Revision$ $Date$ + */ + +/** + * Port to Tosthreads + * + * @author Chieh-Jan Mike Liang + */ + +generic configuration BlockingMsp430InternalTemperatureC() { + provides { + interface BlockingRead; + interface BlockingReadStream; + } +} + +implementation { + components new BlockingAdcReadClientC(); + BlockingRead = BlockingAdcReadClientC; + + components new BlockingAdcReadStreamClientC(); + BlockingReadStream = BlockingAdcReadStreamClientC; + + components Msp430InternalTemperatureP; + BlockingAdcReadClientC.AdcConfigure -> Msp430InternalTemperatureP; + BlockingAdcReadStreamClientC.AdcConfigure -> Msp430InternalTemperatureP; +} diff --git a/tos/lib/tosthreads/chips/msp430/sensors/BlockingMsp430InternalVoltageC.nc b/tos/lib/tosthreads/chips/msp430/sensors/BlockingMsp430InternalVoltageC.nc new file mode 100644 index 00000000..7b4ee6e7 --- /dev/null +++ b/tos/lib/tosthreads/chips/msp430/sensors/BlockingMsp430InternalVoltageC.nc @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2005-2006 Arch Rock Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * - Neither the name of the Arch Rock Corporation nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE + */ + +/** + * Msp430InternalVoltageC is the voltage sensor available on the + * msp430-based platforms. + * + * To convert from ADC counts to actual voltage, divide by 4096 and + * multiply by 3. + * + * @author Gilman Tolle + * @version $Revision$ $Date$ + */ + +/** + * Port to Tosthreads + * + * @author Chieh-Jan Mike Liang + */ + +generic configuration BlockingMsp430InternalVoltageC() { + provides { + interface BlockingRead; + interface BlockingReadStream; + } +} + +implementation { + components new BlockingAdcReadClientC(); + BlockingRead = BlockingAdcReadClientC; + + components new BlockingAdcReadStreamClientC(); + BlockingReadStream = BlockingAdcReadStreamClientC; + + components Msp430InternalVoltageP; + BlockingAdcReadClientC.AdcConfigure -> Msp430InternalVoltageP; + BlockingAdcReadStreamClientC.AdcConfigure -> Msp430InternalVoltageP; +}