ADCControl.nc
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:5k
源码类别:

网络

开发平台:

Others

  1. /* tab:4
  2.  *
  3.  *
  4.  * "Copyright (c) 2000-2002 The Regents of the University  of California.  
  5.  * All rights reserved.
  6.  *
  7.  * Permission to use, copy, modify, and distribute this software and its
  8.  * documentation for any purpose, without fee, and without written agreement is
  9.  * hereby granted, provided that the above copyright notice, the following
  10.  * two paragraphs and the author appear in all copies of this software.
  11.  * 
  12.  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
  13.  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
  14.  * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
  15.  * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16.  * 
  17.  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  18.  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  19.  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  20.  * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
  21.  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
  22.  *
  23.  */
  24. /* tab:4
  25.  *  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.  By
  26.  *  downloading, copying, installing or using the software you agree to
  27.  *  this license.  If you do not agree to this license, do not download,
  28.  *  install, copy or use the software.
  29.  *
  30.  *  Intel Open Source License 
  31.  *
  32.  *  Copyright (c) 2002 Intel Corporation 
  33.  *  All rights reserved. 
  34.  *  Redistribution and use in source and binary forms, with or without
  35.  *  modification, are permitted provided that the following conditions are
  36.  *  met:
  37.  * 
  38.  * Redistributions of source code must retain the above copyright
  39.  *  notice, this list of conditions and the following disclaimer.
  40.  * Redistributions in binary form must reproduce the above copyright
  41.  *  notice, this list of conditions and the following disclaimer in the
  42.  *  documentation and/or other materials provided with the distribution.
  43.  *      Neither the name of the Intel Corporation nor the names of its
  44.  *  contributors may be used to endorse or promote products derived from
  45.  *  this software without specific prior written permission.
  46.  *  
  47.  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  48.  *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  49.  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  50.  *  PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE INTEL OR ITS
  51.  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  52.  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  53.  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  54.  *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  55.  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  56.  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  57.  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  58.  * 
  59.  * 
  60.  */
  61. /*
  62.  * Authors: Alec Woo, David Gay, Philip Levis
  63.  * Date last modified:  6/25/02
  64.  *
  65.  *
  66.  */
  67. /**
  68.  * Controls various aspects of the ADC.
  69.  */
  70. interface ADCControl {
  71.   /**
  72.    * Initializes the ADCControl structures.
  73.    *
  74.    * @return SUCCESS if successful
  75.    */
  76.   command result_t init();
  77.   /**
  78.    * Sets the sampling rate of the ADC.
  79.    * These are the lower three bits in the ADCSR register of the
  80.    * microprocessor.
  81.    *
  82.    * The <code>rate</code> parameter may use the following macros or
  83.    * its own value from the description below.
  84.    * <p>
  85.    * <pre>
  86.    *  TOS_ADCSample3750ns = 0 
  87.    *  TOS_ADCSample7500ns = 1
  88.    *  TOS_ADCSample15us =   2
  89.    *  TOS_ADCSample30us =   3
  90.    *  TOS_ADCSample60us =   4
  91.    *  TOS_ADCSample120us =  5
  92.    *  TOS_ADCSample240us =  6
  93.    *  TOS_ADCSample480us =  7
  94.    * </pre>
  95.    *
  96.    * @param rate 2^rate is the prescaler factor to the ADC.
  97.    * The rate of the ADC is the crystal frequency times the prescaler,
  98.    * or XTAL * 2^rate = 32kHz * 2^rate.
  99.    *
  100.    * @return SUCCESS if successful
  101.    */
  102.   command result_t setSamplingRate(uint8_t rate);
  103.   /**
  104.    * Remaps a port in the ADC portmap <code>TOSH_adc_portmap</code>.
  105.    *
  106.    * See <code>platform/mica/HPLADCC.td</code> for implementation.
  107.    *
  108.    * @param port The port in the portmap you wish to modify
  109.    * @param adcPort The ADC destination port that <code>port</code> binds to
  110.    *
  111.    * @return SUCCESS if successful
  112.    */
  113.   command result_t bindPort(uint8_t port, uint8_t adcPort);
  114.   /**
  115.    * Initiates calibration of the of the ADC.  This may be a software
  116.    * or hardware calibration depending on the platform.
  117.    *
  118.    * @return SUCCESS if the calibration was successfully initiated
  119.    */
  120.   async command result_t manualCalibrate();
  121.   /**
  122.    * Initiates and sets the interval for repeated automatic calibration 
  123.    * of the ADC.  An interval value of 0 (zero) disables automatic
  124.    * calibration
  125.    *
  126.    * @param interval The calibration interval in ms.  A value of 0 (zero)
  127.    * disables automatic calibration
  128.    *
  129.    * @return SUCCESS if auto calibration was enabled
  130.    */
  131.   async command result_t autoCalibrate(uint16_t interval);
  132. }