⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sensorboard.h

📁 tinyos最新版
💻 H
字号:
/*									tab:4 * "Copyright (c) 2000-2003 The Regents of the University  of California.   * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE      * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,  * 94704.  Attention:  Intel License Inquiry. *//* * * Authors:		Joe Polastre * * $Id: sensorboard.h,v 1.17 2003/12/19 17:28:05 idgay Exp $ */#define PRESSURE_POWER_ON() { TOSH_MAKE_ADC6_OUTPUT(); TOSH_SET_ADC6_PIN(); }#define PRESSURE_POWER_OFF()           TOSH_CLR_ADC6_PIN()#define PRESSURE_INTERRUPT             SIG_INTERRUPT0#define PRESSURE_SET_CLOCK()           TOSH_SET_PWM1B_PIN()#define PRESSURE_CLEAR_CLOCK()         TOSH_CLR_PWM1B_PIN()#define PRESSURE_MAKE_CLOCK_OUTPUT()   TOSH_MAKE_PWM1B_OUTPUT()#define PRESSURE_MAKE_IN_INPUT()       TOSH_MAKE_INT0_INPUT()#define PRESSURE_MAKE_OUT_OUTPUT()     TOSH_MAKE_GPS_ENA_OUTPUT()#define PRESSURE_READ_IN_PIN()         TOSH_READ_INT0_PIN()#define PRESSURE_SET_IN_PIN()          TOSH_SET_INT0_PIN()#define PRESSURE_CLEAR_IN_PIN()        TOSH_CLR_INT0_PIN()#define PRESSURE_SET_OUT_PIN()         TOSH_SET_GPS_ENA_PIN()#define PRESSURE_CLEAR_OUT_PIN()       TOSH_CLR_GPS_ENA_PIN()#define HUMIDITY_POWER_ON() { TOSH_MAKE_ADC7_OUTPUT(); TOSH_SET_ADC7_PIN(); }#define HUMIDITY_POWER_OFF()         TOSH_CLR_ADC7_PIN()#define HUMIDITY_INT_ENABLE()        sbi(EIMSK , 1)#define HUMIDITY_INT_DISABLE()       cbi(EIMSK , 1)#define HUMIDITY_INTERRUPT           SIG_INTERRUPT1#define HUMIDITY_MAKE_CLOCK_OUTPUT() TOSH_MAKE_PW0_OUTPUT() //sbi(DDRC, 3)#define HUMIDITY_MAKE_CLOCK_INPUT()  TOSH_MAKE_PW0_INPUT() //sbi(DDRC, 3)#define HUMIDITY_SET_CLOCK()         TOSH_SET_PW0_PIN()   // sbi(PORTC, 3)#define HUMIDITY_CLEAR_CLOCK()       TOSH_CLR_PW0_PIN() // cbi(PORTC, 3)#define HUMIDITY_SET_DATA()          TOSH_SET_INT1_PIN()   // sbi(PORTD, 3)#define HUMIDITY_CLEAR_DATA()        TOSH_CLR_INT1_PIN() // cbi(PORTD, 3)#define HUMIDITY_MAKE_DATA_OUTPUT()  TOSH_MAKE_INT1_OUTPUT() // sbi(DDRD, 3)#define HUMIDITY_MAKE_DATA_INPUT()   TOSH_MAKE_INT1_INPUT() //cbi(DDRD, 3)#define HUMIDITY_GET_DATA()          TOSH_READ_INT1_PIN()  // (inp(PIND) >> 3) & 0x1#define HUMIDITY_TIMEOUT_MS          30#define HUMIDITY_TIMEOUT_TRIES       20#define PRESSURE_TIMEOUT_TRIES       40#define TAOS_TIMEOUT_MS              50#define TAOS_TIMEOUT_TRIES           20#define TAOS_POWER_ON() { TOSH_MAKE_ADC4_OUTPUT(); TOSH_SET_ADC4_PIN(); }#define TAOS_POWER_OFF()             TOSH_CLR_ADC4_PIN()#define TAOS_MAKE_CLOCK_INPUT()      TOSH_MAKE_PW0_INPUT()#define TAOS_MAKE_CLOCK_OUTPUT()     TOSH_MAKE_PW0_OUTPUT()#define TAOS_SET_CLOCK()             TOSH_SET_PW0_PIN()#define TAOS_CLEAR_CLOCK()           TOSH_CLR_PW0_PIN()#define TAOS1_SET_DATA()             TOSH_SET_ADC5_PIN()#define TAOS1_CLEAR_DATA()           TOSH_CLR_ADC5_PIN()#define TAOS1_MAKE_DATA_OUTPUT()     TOSH_MAKE_ADC5_OUTPUT()#define TAOS1_MAKE_DATA_INPUT()      TOSH_MAKE_ADC5_INPUT()#define TAOS1_GET_DATA()             TOSH_READ_ADC5_PIN()#define TAOS2_SET_DATA()             TOSH_SET_PW1_PIN()#define TAOS2_CLEAR_DATA()           TOSH_CLR_PW1_PIN()#define TAOS2_MAKE_DATA_OUTPUT()     TOSH_MAKE_PW1_OUTPUT()#define TAOS2_MAKE_DATA_INPUT()      TOSH_MAKE_PW1_INPUT()#define TAOS2_GET_DATA()             TOSH_READ_PW1_PIN()enum {  HAMAMATSU1_ADC_PORT = 2,  HAMAMATSU2_ADC_PORT = 3};#define MELEXIS_MAKE_SELECT_OUTPUT() TOSH_MAKE_ADC5_OUTPUT()#define MELEXIS_MAKE_SELECT_INPUT()  TOSH_MAKE_ADC5_INPUT()#define MELEXIS_SET_SELECT_PIN()     TOSH_SET_ADC5_PIN()#define MELEXIS_CLEAR_SELECT_PIN()   TOSH_CLR_ADC5_PIN()#define MELEXIS_MAKE_SHDN_OUTPUT()   TOSH_MAKE_ADC6_OUTPUT()#define MELEXIS_MAKE_SHDN_INPUT()    TOSH_MAKE_ADC6_INPUT()#define MELEXIS_SET_SHDN_PIN()       TOSH_SET_ADC6_PIN()#define MELEXIS_CLEAR_SHDN_PIN()     TOSH_CLR_ADC6_PIN()#define THERMOPILE_SET_CLOCK()           TOSH_SET_PWM1B_PIN()#define THERMOPILE_CLEAR_CLOCK()         TOSH_CLR_PWM1B_PIN()#define THERMOPILE_MAKE_CLOCK_OUTPUT()   TOSH_MAKE_PWM1B_OUTPUT()#define THERMOPILE_MAKE_CLOCK_INPUT()    TOSH_MAKE_PWM1B_INPUT()#define THERMOPILE_MAKE_IN_INPUT()       TOSH_MAKE_INT0_INPUT()#define THERMOPILE_MAKE_OUT_OUTPUT()     TOSH_MAKE_GPS_ENA_OUTPUT()#define THERMOPILE_MAKE_OUT_INPUT()      TOSH_MAKE_GPS_ENA_INPUT()#define THERMOPILE_READ_IN_PIN()         TOSH_READ_INT0_PIN()#define THERMOPILE_SET_OUT_PIN()         TOSH_SET_GPS_ENA_PIN()#define THERMOPILE_CLEAR_OUT_PIN()       TOSH_CLR_GPS_ENA_PIN()  const char crctable[256] = {    0, 49, 98, 83, 196, 245, 166, 151, 185, 136, 219, 234, 125, 76, 31, 46,    67, 114, 33, 16,    135, 182, 229, 212, 250, 203, 152, 169, 62, 15, 92, 109, 134, 183, 228,    213, 66, 115, 32, 17,    63, 14, 93, 108,251, 202,153, 168,197, 244,167, 150,1, 48, 99, 82, 124,     77, 30, 47,    184, 137,218, 235,61, 12, 95, 110,249, 200,155, 170,132, 181,230, 215,    64, 113,34, 19,    126, 79, 28, 45, 186, 139,216, 233,199, 246,165, 148,3, 50, 97, 80, 187,     138,217, 232,    127, 78, 29, 44, 2, 51, 96, 81, 198, 247,164, 149,248, 201,154, 171,60,     13, 94, 111,    65, 112,35, 18, 133, 180,231, 214,122, 75, 24, 41, 190, 143,220, 237,    195, 242,161, 144,    7, 54, 101, 84, 57, 8, 91, 106,253, 204,159, 174,128, 177,226, 211,68,     117,38, 23,    252, 205,158, 175,56, 9, 90, 107,69, 116,39, 22, 129, 176,227, 210,191,    142,221, 236,    123, 74, 25, 40, 6, 55, 100, 85, 194, 243,160, 145,71, 118,37, 20, 131,     178,225, 208,    254, 207,156, 173,58, 11, 88, 105,4, 53, 102, 87, 192, 241,162, 147,189,     140,223, 238,    121, 72, 27, 42, 193, 240,163, 146,5, 52, 103, 86, 120, 73, 26, 43, 188,     141,222, 239,    130, 179,224, 209,70, 119,36, 21, 59, 10, 89, 104,255, 206,157, 172};enum {  // I2C Taos Photo Sensor Switch Address  MICAWB_TAOS_ADDR = 57,  // Thermopile address and constants  MICAWB_THERM_POWER  = 8,  MICAWB_THERM_RD_REG = 0x48,  MICAWB_THERM_WR_REG = 0x50,  MICAWB_THERM_RD_EE  = 0x08,  MICAWB_THERM_WR_EE  = 0x10,  MICAWB_THERM_ER_EE  = 0x20,  MICAWB_THERM_BW_EE  = 0x90,  MICAWB_THERM_BE_EE  = 0xA0,  MICAWB_THERM_ADDR_CONFIG0 = 0x03,  MICAWB_THERM_ADDR_CONFIG1 = 0x04,  MICAWB_THERM_IROUT = 0x09,  MICAWB_THERM_TOUT  = 0x0A,  MICAWB_THERM_TEST_REG = 0x10,  MICAWB_THERM_WP_REG = 0x18,  MELEXIS_WP_EN = 0x0065,  MELEXIS_TEST_EN = 0xB200,  // Sensirion Humidity addresses and commands  TOSH_HUMIDITY_ADDR = 5,  TOSH_HUMIDTEMP_ADDR = 3,  TOSH_HUMIDITY_RESET = 0x1E};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -