ads1115 only
Fork of mbed by
Diff: DigitalOut.h
- Revision:
- 44:24d45a770a51
- Parent:
- 43:e2ed12d17f06
- Child:
- 54:71b101360fb9
--- a/DigitalOut.h Fri Oct 26 17:40:46 2012 +0100 +++ b/DigitalOut.h Wed Nov 21 10:49:56 2012 +0000 @@ -1,14 +1,29 @@ -/* mbed Microcontroller Library - DigitalOut - * 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_DIGITALOUT_H #define MBED_DIGITALOUT_H #include "platform.h" -#include "PinNames.h" -#include "PeripheralNames.h" -#include "Base.h" +#include "gpio_api.h" namespace mbed { @@ -29,42 +44,26 @@ * } * @endcode */ -class DigitalOut : public Base { +class DigitalOut { public: - /** Create a DigitalOut connected to the specified pin * * @param pin DigitalOut pin to connect to */ - DigitalOut(PinName pin, const char* name = NULL); - + DigitalOut(PinName pin) { + gpio_init(&gpio, pin, PIN_OUTPUT); + } + /** Set the output, specified as 0 or 1 (int) * * @param value An integer specifying the pin output value, * 0 for logical 0, 1 (or any other non-zero value) for logical 1 */ void write(int value) { - -#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) - - if(value) { - _gpio->FIOSET = _mask; - } else { - _gpio->FIOCLR = _mask; - } - -#elif defined(TARGET_LPC11U24) - - if(value) { - LPC_GPIO->SET[_index] = _mask; - } else { - LPC_GPIO->CLR[_index] = _mask; - } -#endif - + gpio_write(&gpio, value); } - + /** Return the output setting, represented as 0 or 1 (int) * * @returns @@ -72,15 +71,9 @@ * 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); } - - + #ifdef MBED_OPERATORS /** A shorthand for write() */ @@ -88,39 +81,21 @@ write(value); return *this; } - + DigitalOut& operator= (DigitalOut& rhs) { write(rhs.read()); return *this; } - /** A 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