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

📄 atm128adc.h

📁 tinyos2.0版本驱动
💻 H
字号:
// $Id: Atm128Adc.h,v 1.5 2008/06/11 00:42:13 razvanm Exp $/* * Copyright (c) 2004-2005 Crossbow Technology, Inc.  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 CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS 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 CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH  * DAMAGE.  * * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL 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 NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY  * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR  * MODIFICATIONS. */// @author Martin Turon <mturon@xbow.com>// @author Hu Siquan <husq@xbow.com>#ifndef _H_Atm128ADC_h#define _H_Atm128ADC_h//================== 8 channel 10-bit ADC ==============================/* Voltage Reference Settings */enum {    ATM128_ADC_VREF_OFF = 0, //!< VR+ = AREF   and VR- = GND    ATM128_ADC_VREF_AVCC = 1,//!< VR+ = AVcc   and VR- = GND    ATM128_ADC_VREF_RSVD,    ATM128_ADC_VREF_2_56 = 3,//!< VR+ = 2.56V  and VR- = GND};/* Voltage Reference Settings */enum {    ATM128_ADC_RIGHT_ADJUST = 0,     ATM128_ADC_LEFT_ADJUST = 1,};/* ADC Multiplexer Settings */enum {    ATM128_ADC_SNGL_ADC0 = 0,    ATM128_ADC_SNGL_ADC1,    ATM128_ADC_SNGL_ADC2,    ATM128_ADC_SNGL_ADC3,    ATM128_ADC_SNGL_ADC4,    ATM128_ADC_SNGL_ADC5,    ATM128_ADC_SNGL_ADC6,    ATM128_ADC_SNGL_ADC7,    ATM128_ADC_DIFF_ADC00_10x,    ATM128_ADC_DIFF_ADC10_10x,    ATM128_ADC_DIFF_ADC00_200x,    ATM128_ADC_DIFF_ADC10_200x,    ATM128_ADC_DIFF_ADC22_10x,    ATM128_ADC_DIFF_ADC32_10x,    ATM128_ADC_DIFF_ADC22_200x,    ATM128_ADC_DIFF_ADC32_200x,    ATM128_ADC_DIFF_ADC01_1x,    ATM128_ADC_DIFF_ADC11_1x,    ATM128_ADC_DIFF_ADC21_1x,    ATM128_ADC_DIFF_ADC31_1x,    ATM128_ADC_DIFF_ADC41_1x,    ATM128_ADC_DIFF_ADC51_1x,    ATM128_ADC_DIFF_ADC61_1x,    ATM128_ADC_DIFF_ADC71_1x,    ATM128_ADC_DIFF_ADC02_1x,    ATM128_ADC_DIFF_ADC12_1x,    ATM128_ADC_DIFF_ADC22_1x,    ATM128_ADC_DIFF_ADC32_1x,    ATM128_ADC_DIFF_ADC42_1x,    ATM128_ADC_DIFF_ADC52_1x,    ATM128_ADC_SNGL_1_23,    ATM128_ADC_SNGL_GND,};/* ADC Multiplexer Selection Register */typedef struct{    uint8_t mux   : 5;  //!< Analog Channel and Gain Selection Bits    uint8_t adlar : 1;  //!< ADC Left Adjust Result    uint8_t refs  : 2;  //!< Reference Selection Bits} Atm128Admux_t;/* ADC Prescaler Settings *//* Note: each platform must define ATM128_ADC_PRESCALE to the smallest   prescaler which guarantees full A/D precision. */enum {    ATM128_ADC_PRESCALE_2 = 0,    ATM128_ADC_PRESCALE_2b,    ATM128_ADC_PRESCALE_4,    ATM128_ADC_PRESCALE_8,    ATM128_ADC_PRESCALE_16,    ATM128_ADC_PRESCALE_32,    ATM128_ADC_PRESCALE_64,    ATM128_ADC_PRESCALE_128,    // This special value is used to ask the platform for the prescaler    // which gives full precision.    ATM128_ADC_PRESCALE};/* ADC Enable Settings */enum {    ATM128_ADC_ENABLE_OFF = 0,    ATM128_ADC_ENABLE_ON,};/* ADC Start Conversion Settings */enum {    ATM128_ADC_START_CONVERSION_OFF = 0,    ATM128_ADC_START_CONVERSION_ON,};/* ADC Free Running Select Settings */enum {    ATM128_ADC_FREE_RUNNING_OFF = 0,    ATM128_ADC_FREE_RUNNING_ON,};/* ADC Interrupt Flag Settings */enum {    ATM128_ADC_INT_FLAG_OFF = 0,    ATM128_ADC_INT_FLAG_ON,};/* ADC Interrupt Enable Settings */enum {    ATM128_ADC_INT_ENABLE_OFF = 0,    ATM128_ADC_INT_ENABLE_ON,};/* ADC Multiplexer Selection Register */typedef struct{    uint8_t adps  : 3;  //!< ADC Prescaler Select Bits    uint8_t adie  : 1;  //!< ADC Interrupt Enable    uint8_t adif  : 1;  //!< ADC Interrupt Flag    uint8_t adfr  : 1;  //!< ADC Free Running Select    uint8_t adsc  : 1;  //!< ADC Start Conversion    uint8_t aden  : 1;  //!< ADC Enable} Atm128Adcsra_t;typedef uint8_t Atm128_ADCH_t;         //!< ADC data register hightypedef uint8_t Atm128_ADCL_t;         //!< ADC data register low// The resource identifier string for the ADC subsystem#define UQ_ATM128ADC_RESOURCE "atm128adc.resource"#endif //_H_Atm128ADC_h

⌨️ 快捷键说明

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