BLE temperature profile using digital DS1820 or analog LM35 sensors

Dependencies:   DS1820

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BusOut.h Source File

BusOut.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_BUSOUT_H
00017 #define MBED_BUSOUT_H
00018 
00019 #include "DigitalOut.h"
00020 
00021 namespace mbed {
00022 
00023 /** A digital output bus, used for setting the state of a collection of pins
00024  */
00025 class BusOut {
00026 
00027 public:
00028 
00029     /** Create an BusOut, connected to the specified pins
00030      *
00031      *  @param p<n> DigitalOut pin to connect to bus bit <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     BusOut(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     BusOut(PinName pins[16]);
00043 
00044     virtual ~BusOut();
00045 
00046     /** Write the value to the output bus
00047      *
00048      *  @param value An integer specifying a bit to write for every corresponding DigitalOut pin
00049      */
00050     void write(int value);
00051 
00052     /** Read the value currently output on the bus
00053      *
00054      *  @returns
00055      *    An integer with each bit corresponding to associated DigitalOut pin setting
00056      */
00057     int read();
00058 
00059 #ifdef MBED_OPERATORS
00060     /** A shorthand for write()
00061      */
00062     BusOut& operator= (int v);
00063     BusOut& operator= (BusOut& rhs);
00064 
00065     /** A shorthand for read()
00066      */
00067     operator int();
00068 #endif
00069 
00070 protected:
00071     DigitalOut* _pin[16];
00072 };
00073 
00074 } // namespace mbed
00075 
00076 #endif