ADCControl.nc
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:5k
- /* tab:4
- *
- *
- * "Copyright (c) 2000-2002 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."
- *
- */
- /* tab:4
- * IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. By
- * downloading, copying, installing or using the software you agree to
- * this license. If you do not agree to this license, do not download,
- * install, copy or use the software.
- *
- * Intel Open Source License
- *
- * Copyright (c) 2002 Intel 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 Intel 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 INTEL 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.
- *
- *
- */
- /*
- * Authors: Alec Woo, David Gay, Philip Levis
- * Date last modified: 6/25/02
- *
- *
- */
- /**
- * Controls various aspects of the ADC.
- */
- interface ADCControl {
- /**
- * Initializes the ADCControl structures.
- *
- * @return SUCCESS if successful
- */
- command result_t init();
- /**
- * Sets the sampling rate of the ADC.
- * These are the lower three bits in the ADCSR register of the
- * microprocessor.
- *
- * The <code>rate</code> parameter may use the following macros or
- * its own value from the description below.
- * <p>
- * <pre>
- * TOS_ADCSample3750ns = 0
- * TOS_ADCSample7500ns = 1
- * TOS_ADCSample15us = 2
- * TOS_ADCSample30us = 3
- * TOS_ADCSample60us = 4
- * TOS_ADCSample120us = 5
- * TOS_ADCSample240us = 6
- * TOS_ADCSample480us = 7
- * </pre>
- *
- * @param rate 2^rate is the prescaler factor to the ADC.
- * The rate of the ADC is the crystal frequency times the prescaler,
- * or XTAL * 2^rate = 32kHz * 2^rate.
- *
- * @return SUCCESS if successful
- */
- command result_t setSamplingRate(uint8_t rate);
- /**
- * Remaps a port in the ADC portmap <code>TOSH_adc_portmap</code>.
- *
- * See <code>platform/mica/HPLADCC.td</code> for implementation.
- *
- * @param port The port in the portmap you wish to modify
- * @param adcPort The ADC destination port that <code>port</code> binds to
- *
- * @return SUCCESS if successful
- */
- command result_t bindPort(uint8_t port, uint8_t adcPort);
- /**
- * Initiates calibration of the of the ADC. This may be a software
- * or hardware calibration depending on the platform.
- *
- * @return SUCCESS if the calibration was successfully initiated
- */
- async command result_t manualCalibrate();
- /**
- * Initiates and sets the interval for repeated automatic calibration
- * of the ADC. An interval value of 0 (zero) disables automatic
- * calibration
- *
- * @param interval The calibration interval in ms. A value of 0 (zero)
- * disables automatic calibration
- *
- * @return SUCCESS if auto calibration was enabled
- */
- async command result_t autoCalibrate(uint16_t interval);
- }