mbed libraries for KL25Z

Dependents:   FRDM_RGBLED

Committer:
emilmont
Date:
Fri Nov 09 11:33:53 2012 +0000
Revision:
8:c14af7958ef5
Parent:
0:8024c367e29f
Child:
9:663789d7729f
SPI driver; ADC driver; DAC driver; microlib support; general bugfixing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 0:8024c367e29f 1 /* mbed Microcontroller Library - DigitalOut
emilmont 0:8024c367e29f 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
emilmont 0:8024c367e29f 3 */
emilmont 0:8024c367e29f 4 #ifndef MBED_DIGITALOUT_H
emilmont 0:8024c367e29f 5 #define MBED_DIGITALOUT_H
emilmont 0:8024c367e29f 6
emilmont 0:8024c367e29f 7 #include "platform.h"
emilmont 0:8024c367e29f 8 #include "gpio_api.h"
emilmont 0:8024c367e29f 9
emilmont 0:8024c367e29f 10 namespace mbed {
emilmont 0:8024c367e29f 11
emilmont 8:c14af7958ef5 12 /** A digital output, used for setting the state of a pin
emilmont 0:8024c367e29f 13 *
emilmont 0:8024c367e29f 14 * Example:
emilmont 8:c14af7958ef5 15 * @code
emilmont 8:c14af7958ef5 16 * // Toggle a LED
emilmont 8:c14af7958ef5 17 * #include "mbed.h"
emilmont 8:c14af7958ef5 18 *
emilmont 8:c14af7958ef5 19 * DigitalOut led(LED1);
emilmont 8:c14af7958ef5 20 *
emilmont 8:c14af7958ef5 21 * int main() {
emilmont 8:c14af7958ef5 22 * while(1) {
emilmont 8:c14af7958ef5 23 * led = !led;
emilmont 8:c14af7958ef5 24 * wait(0.2);
emilmont 8:c14af7958ef5 25 * }
emilmont 8:c14af7958ef5 26 * }
emilmont 8:c14af7958ef5 27 * @endcode
emilmont 0:8024c367e29f 28 */
emilmont 8:c14af7958ef5 29 class DigitalOut {
emilmont 0:8024c367e29f 30
emilmont 0:8024c367e29f 31 public:
emilmont 8:c14af7958ef5 32 /** Create a DigitalOut connected to the specified pin
emilmont 0:8024c367e29f 33 *
emilmont 8:c14af7958ef5 34 * @param pin DigitalOut pin to connect to
emilmont 0:8024c367e29f 35 */
emilmont 8:c14af7958ef5 36 DigitalOut(PinName pin);
emilmont 0:8024c367e29f 37
emilmont 8:c14af7958ef5 38 /** Set the output, specified as 0 or 1 (int)
emilmont 0:8024c367e29f 39 *
emilmont 8:c14af7958ef5 40 * @param value An integer specifying the pin output value,
emilmont 8:c14af7958ef5 41 * 0 for logical 0, 1 (or any other non-zero value) for logical 1
emilmont 0:8024c367e29f 42 */
emilmont 8:c14af7958ef5 43 void write(int value) {
emilmont 8:c14af7958ef5 44 gpio_write(&gpio, value);
emilmont 8:c14af7958ef5 45 }
emilmont 0:8024c367e29f 46
emilmont 8:c14af7958ef5 47 /** Return the output setting, represented as 0 or 1 (int)
emilmont 0:8024c367e29f 48 *
emilmont 8:c14af7958ef5 49 * @returns
emilmont 8:c14af7958ef5 50 * an integer representing the output setting of the pin,
emilmont 8:c14af7958ef5 51 * 0 for logical 0, 1 for logical 1
emilmont 0:8024c367e29f 52 */
emilmont 8:c14af7958ef5 53 int read() {
emilmont 8:c14af7958ef5 54 return gpio_read(&gpio);
emilmont 8:c14af7958ef5 55 }
emilmont 0:8024c367e29f 56
emilmont 0:8024c367e29f 57 #ifdef MBED_OPERATORS
emilmont 8:c14af7958ef5 58 /** A shorthand for write()
emilmont 0:8024c367e29f 59 */
emilmont 0:8024c367e29f 60 DigitalOut& operator= (int value) {
emilmont 0:8024c367e29f 61 write(value);
emilmont 0:8024c367e29f 62 return *this;
emilmont 0:8024c367e29f 63 }
emilmont 0:8024c367e29f 64
emilmont 0:8024c367e29f 65 DigitalOut& operator= (DigitalOut& rhs) {
emilmont 0:8024c367e29f 66 write(rhs.read());
emilmont 0:8024c367e29f 67 return *this;
emilmont 0:8024c367e29f 68 }
emilmont 0:8024c367e29f 69
emilmont 8:c14af7958ef5 70 /** A shorthand for read()
emilmont 0:8024c367e29f 71 */
emilmont 0:8024c367e29f 72 operator int() {
emilmont 0:8024c367e29f 73 return read();
emilmont 0:8024c367e29f 74 }
emilmont 0:8024c367e29f 75 #endif
emilmont 0:8024c367e29f 76
emilmont 0:8024c367e29f 77 protected:
emilmont 0:8024c367e29f 78 gpio_object gpio;
emilmont 0:8024c367e29f 79 };
emilmont 0:8024c367e29f 80
emilmont 0:8024c367e29f 81 } // namespace mbed
emilmont 0:8024c367e29f 82
emilmont 0:8024c367e29f 83 #endif