Christian Weiß / Mbed 2 deprecated Diplomarbeit_MW_CW

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DigitalIn.h Source File

DigitalIn.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_DIGITALIN_H
00023 #define MBED_DIGITALIN_H
00024 
00025 #include "platform.h"
00026 
00027 #include "gpio_api.h"
00028 
00029 namespace mbed {
00030 
00031 /** A digital input, used for reading the state of a pin
00032  *
00033  * Example:
00034  * @code
00035  * // Flash an LED while a DigitalIn is true
00036  *
00037  * #include "mbed.h"
00038  *
00039  * DigitalIn enable(p5);
00040  * DigitalOut led(LED1);
00041  *
00042  * int main() {
00043  *     while(1) {
00044  *         if(enable) {
00045  *             led = !led;
00046  *         }
00047  *         wait(0.25);
00048  *     }
00049  * }
00050  * @endcode
00051  */
00052 class DigitalIn {
00053 
00054 public:
00055     /** Create a DigitalIn connected to the specified pin
00056      *
00057      *  @param pin DigitalIn pin to connect to
00058      *  @param name (optional) A string to identify the object
00059      */
00060     DigitalIn(PinName pin) {
00061         gpio_init(&gpio, pin, PIN_INPUT);
00062     }
00063 
00064     /** Read the input, represented as 0 or 1 (int)
00065      *
00066      *  @returns
00067      *    An integer representing the state of the input pin,
00068      *    0 for logical 0, 1 for logical 1
00069      */
00070     int read() {
00071         return gpio_read(&gpio);
00072     }
00073 
00074     /** Set the input pin mode
00075      *
00076      *  @param mode PullUp, PullDown, PullNone, OpenDrain
00077      */
00078     void mode(PinMode pull) {
00079         gpio_mode(&gpio, pull);
00080     }
00081 
00082 #ifdef MBED_OPERATORS
00083     /** An operator shorthand for read()
00084      */
00085     operator int() {
00086         return read();
00087     }
00088 #endif
00089 
00090 protected:
00091     gpio_t gpio;
00092 };
00093 
00094 } // namespace mbed
00095 
00096 #endif
00097