Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
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


