Christian Weiß / Mbed 2 deprecated Diplomarbeit_MW_CW

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BusIn.h Source File

BusIn.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a copy
00005  * of this software and associated documentation files (the "Software"), to deal
00006  * in the Software without restriction, including without limitation the rights
00007  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008  * copies of the Software, and to permit persons to whom the Software is
00009  * furnished to do so, subject to the following conditions:
00010  *
00011  * The above copyright notice and this permission notice shall be included in
00012  * all copies or substantial portions of the Software.
00013  *
00014  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
00020  * SOFTWARE.
00021  */
00022 #ifndef MBED_BUSIN_H
00023 #define MBED_BUSIN_H
00024 
00025 #include "platform.h"
00026 #include "DigitalIn.h"
00027 
00028 namespace mbed {
00029 
00030 /** A digital input bus, used for reading the state of a collection of pins
00031  */
00032 class BusIn {
00033 
00034 public:
00035     /* Group: Configuration Methods */
00036 
00037     /** Create an BusIn, connected to the specified pins
00038      *
00039      * @param <n> DigitalIn pin to connect to bus bit <n> (p5-p30, NC)
00040      *
00041      * @note
00042      *  It is only required to specify as many pin variables as is required
00043      *  for the bus; the rest will default to NC (not connected)
00044      */
00045     BusIn(PinName p0, PinName p1 = NC, PinName p2 = NC, PinName p3 = NC,
00046           PinName p4 = NC, PinName p5 = NC, PinName p6 = NC, PinName p7 = NC,
00047           PinName p8 = NC, PinName p9 = NC, PinName p10 = NC, PinName p11 = NC,
00048           PinName p12 = NC, PinName p13 = NC, PinName p14 = NC, PinName p15 = NC);
00049 
00050     BusIn(PinName pins[16]);
00051 
00052     virtual ~BusIn();
00053 
00054     /** Read the value of the input bus
00055      *
00056      *  @returns
00057      *   An integer with each bit corresponding to the value read from the associated DigitalIn pin
00058      */
00059     int read();
00060 
00061 #ifdef MBED_OPERATORS
00062     /** A shorthand for read()
00063      */
00064     operator int();
00065 #endif
00066 
00067 protected:
00068     DigitalIn* _pin[16];
00069 };
00070 
00071 } // namespace mbed
00072 
00073 #endif
00074