mbed libraries for KL25Z

Dependents:   FRDM_RGBLED

Committer:
emilmont
Date:
Wed Oct 10 14:14:12 2012 +0000
Revision:
2:e9a661555b58
Parent:
0:8024c367e29f
Child:
8:c14af7958ef5
Add PWM and I2C implementation;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 2:e9a661555b58 1 /* mbed Microcontroller Library - DigitalInOut
emilmont 2:e9a661555b58 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
emilmont 2:e9a661555b58 3 */
emilmont 2:e9a661555b58 4 #ifndef MBED_DIGITALINOUT_H
emilmont 2:e9a661555b58 5 #define MBED_DIGITALINOUT_H
emilmont 2:e9a661555b58 6
emilmont 2:e9a661555b58 7 #include "platform.h"
emilmont 2:e9a661555b58 8 #include "Base.h"
emilmont 2:e9a661555b58 9
emilmont 2:e9a661555b58 10 #include "gpio_api.h"
emilmont 2:e9a661555b58 11
emilmont 2:e9a661555b58 12 namespace mbed {
emilmont 2:e9a661555b58 13
emilmont 2:e9a661555b58 14 /* Class: DigitalInOut
emilmont 2:e9a661555b58 15 * A digital input/output, used for setting or reading a bi-directional pin
emilmont 2:e9a661555b58 16 */
emilmont 2:e9a661555b58 17 class DigitalInOut : public Base {
emilmont 2:e9a661555b58 18
emilmont 2:e9a661555b58 19 public:
emilmont 2:e9a661555b58 20 /* Constructor: DigitalInOut
emilmont 2:e9a661555b58 21 * Create a DigitalInOut connected to the specified pin
emilmont 2:e9a661555b58 22 *
emilmont 2:e9a661555b58 23 * Variables:
emilmont 2:e9a661555b58 24 * pin - DigitalInOut pin to connect to
emilmont 2:e9a661555b58 25 */
emilmont 2:e9a661555b58 26 DigitalInOut(PinName pin, const char* name = NULL);
emilmont 2:e9a661555b58 27
emilmont 2:e9a661555b58 28 /* Function: write
emilmont 2:e9a661555b58 29 * Set the output, specified as 0 or 1 (int)
emilmont 2:e9a661555b58 30 *
emilmont 2:e9a661555b58 31 * Variables:
emilmont 2:e9a661555b58 32 * value - An integer specifying the pin output value,
emilmont 2:e9a661555b58 33 * 0 for logical 0 and 1 (or any other non-zero value) for logical 1
emilmont 2:e9a661555b58 34 */
emilmont 2:e9a661555b58 35 void write(int value);
emilmont 2:e9a661555b58 36
emilmont 2:e9a661555b58 37 /* Function: read
emilmont 2:e9a661555b58 38 * Return the output setting, represented as 0 or 1 (int)
emilmont 2:e9a661555b58 39 *
emilmont 2:e9a661555b58 40 * Variables:
emilmont 2:e9a661555b58 41 * returns - An integer representing the output setting of the pin if it is an output,
emilmont 2:e9a661555b58 42 * or read the input if set as an input
emilmont 2:e9a661555b58 43 */
emilmont 2:e9a661555b58 44 int read();
emilmont 2:e9a661555b58 45
emilmont 2:e9a661555b58 46 /* Function: output
emilmont 2:e9a661555b58 47 * Set as an output
emilmont 2:e9a661555b58 48 */
emilmont 2:e9a661555b58 49 void output();
emilmont 2:e9a661555b58 50
emilmont 2:e9a661555b58 51 /* Function: input
emilmont 2:e9a661555b58 52 * Set as an input
emilmont 2:e9a661555b58 53 */
emilmont 2:e9a661555b58 54 void input();
emilmont 2:e9a661555b58 55
emilmont 2:e9a661555b58 56 /* Function: mode
emilmont 2:e9a661555b58 57 * Set the input pin mode
emilmont 2:e9a661555b58 58 *
emilmont 2:e9a661555b58 59 * Variables:
emilmont 2:e9a661555b58 60 * mode - PullUp, PullDown, PullNone, OpenDrain
emilmont 2:e9a661555b58 61 */
emilmont 2:e9a661555b58 62 void mode(PinMode pull);
emilmont 2:e9a661555b58 63
emilmont 2:e9a661555b58 64 #ifdef MBED_OPERATORS
emilmont 2:e9a661555b58 65 /* Function: operator=
emilmont 2:e9a661555b58 66 * A shorthand for <write>
emilmont 2:e9a661555b58 67 */
emilmont 2:e9a661555b58 68 DigitalInOut& operator= (int value) {
emilmont 2:e9a661555b58 69 write(value);
emilmont 2:e9a661555b58 70 return *this;
emilmont 2:e9a661555b58 71 }
emilmont 2:e9a661555b58 72
emilmont 2:e9a661555b58 73 DigitalInOut& operator= (DigitalInOut& rhs) {
emilmont 2:e9a661555b58 74 write(rhs.read());
emilmont 2:e9a661555b58 75 return *this;
emilmont 2:e9a661555b58 76 }
emilmont 2:e9a661555b58 77
emilmont 2:e9a661555b58 78 /* Function: operator int()
emilmont 2:e9a661555b58 79 * A shorthand for <read>
emilmont 2:e9a661555b58 80 */
emilmont 2:e9a661555b58 81 operator int() {
emilmont 2:e9a661555b58 82 return read();
emilmont 2:e9a661555b58 83 }
emilmont 2:e9a661555b58 84 #endif
emilmont 2:e9a661555b58 85
emilmont 2:e9a661555b58 86 #ifdef MBED_RPC
emilmont 2:e9a661555b58 87 virtual const struct rpc_method *get_rpc_methods();
emilmont 2:e9a661555b58 88 static struct rpc_class *get_rpc_class();
emilmont 2:e9a661555b58 89 #endif
emilmont 2:e9a661555b58 90
emilmont 2:e9a661555b58 91 protected:
emilmont 2:e9a661555b58 92 gpio_object gpio;
emilmont 2:e9a661555b58 93 };
emilmont 2:e9a661555b58 94
emilmont 2:e9a661555b58 95 } // namespace mbed
emilmont 2:e9a661555b58 96
emilmont 2:e9a661555b58 97 #endif