ads1115 only
Fork of mbed by
Diff: DigitalIn.h
- Revision:
- 44:24d45a770a51
- Parent:
- 43:e2ed12d17f06
- Child:
- 54:71b101360fb9
--- a/DigitalIn.h Fri Oct 26 17:40:46 2012 +0100 +++ b/DigitalIn.h Wed Nov 21 10:49:56 2012 +0000 @@ -1,14 +1,30 @@ -/* mbed Microcontroller Library - DigitalIn - * Copyright (c) 2006-2011 ARM Limited. All rights reserved. - */ - +/* mbed Microcontroller Library + * Copyright (c) 2006-2012 ARM Limited + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ #ifndef MBED_DIGITALIN_H #define MBED_DIGITALIN_H #include "platform.h" -#include "PinNames.h" -#include "PeripheralNames.h" -#include "Base.h" + +#include "gpio_api.h" namespace mbed { @@ -33,17 +49,18 @@ * } * @endcode */ -class DigitalIn : public Base { +class DigitalIn { public: - /** Create a DigitalIn connected to the specified pin * * @param pin DigitalIn pin to connect to * @param name (optional) A string to identify the object */ - DigitalIn(PinName pin, const char *name = NULL); - + DigitalIn(PinName pin) { + gpio_init(&gpio, pin, PIN_INPUT); + } + /** Read the input, represented as 0 or 1 (int) * * @returns @@ -51,47 +68,29 @@ * 0 for logical 0, 1 for logical 1 */ int read() { -#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) - return ((_gpio->FIOPIN & _mask) ? 1 : 0); -#elif defined(TARGET_LPC11U24) - return ((LPC_GPIO->PIN[_index] & _mask) ? 1 : 0); -#endif + return gpio_read(&gpio); } - - + /** Set the input pin mode * * @param mode PullUp, PullDown, PullNone, OpenDrain */ - void mode(PinMode pull); + void mode(PinMode pull) { + gpio_mode(&gpio, pull); + } -#ifdef MBED_OPERATORS +#ifdef MBED_OPERATORS /** An operator shorthand for read() */ operator int() { return read(); } - -#endif - -#ifdef MBED_RPC - virtual const struct rpc_method *get_rpc_methods(); - static struct rpc_class *get_rpc_class(); #endif protected: - - PinName _pin; -#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) - LPC_GPIO_TypeDef *_gpio; -#elif defined(TARGET_LPC11U24) - int _index; -#endif - uint32_t _mask; - + gpio_t gpio; }; } // namespace mbed #endif -