BLE temperature profile using digital DS1820 or analog LM35 sensors

Dependencies:   DS1820

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BusInOut.h Source File

BusInOut.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 #ifndef MBED_BUSINOUT_H
00017 #define MBED_BUSINOUT_H
00018 
00019 #include "DigitalInOut.h"
00020 
00021 namespace mbed {
00022 
00023 /** A digital input output bus, used for setting the state of a collection of pins
00024  */
00025 class BusInOut {
00026 
00027 public:
00028 
00029     /** Create an BusInOut, connected to the specified pins
00030      *
00031      *  @param p<n> DigitalInOut pin to connect to bus bit p<n> (p5-p30, NC)
00032      *
00033      *  @note
00034      *  It is only required to specify as many pin variables as is required
00035      *  for the bus; the rest will default to NC (not connected)
00036      */
00037     BusInOut(PinName p0, PinName p1 = NC, PinName p2 = NC, PinName p3 = NC,
00038              PinName p4 = NC, PinName p5 = NC, PinName p6 = NC, PinName p7 = NC,
00039              PinName p8 = NC, PinName p9 = NC, PinName p10 = NC, PinName p11 = NC,
00040              PinName p12 = NC, PinName p13 = NC, PinName p14 = NC, PinName p15 = NC);
00041 
00042     BusInOut(PinName pins[16]);
00043 
00044     virtual ~BusInOut();
00045 
00046     /* Group: Access Methods */
00047 
00048     /** Write the value to the output bus
00049      *
00050      *  @param value An integer specifying a bit to write for every corresponding DigitalInOut pin
00051      */
00052     void write(int value);
00053 
00054 
00055     /** Read the value currently output on the bus
00056      *
00057      *  @returns
00058      *    An integer with each bit corresponding to associated DigitalInOut pin setting
00059      */
00060     int read();
00061 
00062     /** Set as an output
00063      */
00064     void output();
00065 
00066     /** Set as an input
00067      */
00068     void input();
00069 
00070     /** Set the input pin mode
00071      *
00072      *  @param mode PullUp, PullDown, PullNone
00073      */
00074     void mode(PinMode pull);
00075 
00076 #ifdef MBED_OPERATORS
00077      /** A shorthand for write()
00078      */
00079     BusInOut& operator= (int v);
00080     BusInOut& operator= (BusInOut& rhs);
00081 
00082     /** A shorthand for read()
00083      */
00084     operator int();
00085 #endif
00086 
00087 protected:
00088     DigitalInOut* _pin[16];
00089 };
00090 
00091 } // namespace mbed
00092 
00093 #endif