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

📄 atm128spi.nc

📁 tinyos2.0版本驱动
💻 NC
字号:
/// $Id: Atm128Spi.nc,v 1.4 2006/12/12 18:23:04 vlahan Exp $ /* * "Copyright (c) 2005 Stanford University. 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 STANFORD UNIVERSITY 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 STANFORD UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * STANFORD UNIVERSITY 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 STANFORD UNIVERSITY * HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS." * * 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. *//** * HPL-level access to the Atmega128 SPI bus. Refer to pages 162-9 * of the Atmega128 datasheet (rev. 2467M-AVR-11/04) for details. * * <pre> *  $Id: Atm128Spi.nc,v 1.4 2006/12/12 18:23:04 vlahan Exp $ * </pre> * * @author Philip Levis * @author Martin Turon <mturon@xbow.com> * @date   September 8 2005 */#include "Atm128Spi.h"interface Atm128Spi {  /* Modal functions */  /** Initialize the ATmega128 SPI bus into master mode. */  async command void initMaster();  /** Initialize the ATmega128 SPI bus into slave mode. */  async command void initSlave();  /** Disable and sleep the ATmega128 SPI bus. */  async command void sleep();    /* SPDR: SPI Data Register */  /**    * Read the SPI data register    * @return last data byte   */  async command uint8_t read();  /**    * Write the SPI data register    * @param data   next data byte   */  async command void write(uint8_t data);  /**   * Interrupt signalling SPI data cycle is complete.    * @param data   data byte from data register   */  async event   void dataReady(uint8_t data);    /* SPCR: SPI Control Register */  /* SPIE bit */  async command void enableInterrupt(bool enabled);  async command bool isInterruptEnabled();  /* SPI bit */  async command void enableSpi(bool busOn);  async command bool isSpiEnabled();  /* DORD bit */  async command void setDataOrder(bool lsbFirst);  async command bool isOrderLsbFirst();  /* MSTR bit */  async command void setMasterBit(bool isMaster);  async command bool isMasterBitSet();  /* CPOL bit */  async command void setClockPolarity(bool highWhenIdle);  async command bool getClockPolarity();  /* CPHA bit */  async command void setClockPhase(bool sampleOnTrailing);  async command bool getClockPhase();  /* SPR1 and SPR0 bits */  async command void  setClock(uint8_t speed);  async command uint8_t getClock();    /* SPSR: SPI Status Register */    /* SPIF bit */  async command bool isInterruptPending();  /* WCOL bit */  async command bool hasWriteCollided();  /* SPI2X bit */  async command bool isMasterDoubleSpeed();  async command void setMasterDoubleSpeed(bool on);}

⌨️ 快捷键说明

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