mbed libraries for KL25Z

Dependents:   FRDM_RGBLED

Committer:
emilmont
Date:
Fri Nov 09 11:33:53 2012 +0000
Revision:
8:c14af7958ef5
Parent:
7:73c5efe92a6c
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 2:e9a661555b58 1 /* mbed Microcontroller Library - PortOut
emilmont 2:e9a661555b58 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
emilmont 7:73c5efe92a6c 3 */
emilmont 2:e9a661555b58 4 #ifndef MBED_PORTOUT_H
emilmont 2:e9a661555b58 5 #define MBED_PORTOUT_H
emilmont 2:e9a661555b58 6
emilmont 8:c14af7958ef5 7 #include "platform.h"
emilmont 2:e9a661555b58 8
emilmont 2:e9a661555b58 9 #if DEVICE_PORTOUT
emilmont 2:e9a661555b58 10
emilmont 7:73c5efe92a6c 11 #include "port_api.h"
emilmont 7:73c5efe92a6c 12
emilmont 2:e9a661555b58 13 namespace mbed {
emilmont 8:c14af7958ef5 14 /** A multiple pin digital out
emilmont 2:e9a661555b58 15 *
emilmont 2:e9a661555b58 16 * Example:
emilmont 8:c14af7958ef5 17 * @code
emilmont 8:c14af7958ef5 18 * // Toggle all four LEDs
emilmont 8:c14af7958ef5 19 *
emilmont 8:c14af7958ef5 20 * #include "mbed.h"
emilmont 8:c14af7958ef5 21 *
emilmont 8:c14af7958ef5 22 * // LED1 = P1.18 LED2 = P1.20 LED3 = P1.21 LED4 = P1.23
emilmont 8:c14af7958ef5 23 * #define LED_MASK 0x00B40000
emilmont 8:c14af7958ef5 24 *
emilmont 8:c14af7958ef5 25 * PortOut ledport(Port1, LED_MASK);
emilmont 8:c14af7958ef5 26 *
emilmont 8:c14af7958ef5 27 * int main() {
emilmont 8:c14af7958ef5 28 * while(1) {
emilmont 8:c14af7958ef5 29 * ledport = LED_MASK;
emilmont 8:c14af7958ef5 30 * wait(1);
emilmont 8:c14af7958ef5 31 * ledport = 0;
emilmont 8:c14af7958ef5 32 * wait(1);
emilmont 8:c14af7958ef5 33 * }
emilmont 8:c14af7958ef5 34 * }
emilmont 8:c14af7958ef5 35 * @endcode
emilmont 2:e9a661555b58 36 */
emilmont 2:e9a661555b58 37 class PortOut {
emilmont 2:e9a661555b58 38 public:
emilmont 8:c14af7958ef5 39
emilmont 8:c14af7958ef5 40 /** Create an PortOut, connected to the specified port
emilmont 2:e9a661555b58 41 *
emilmont 8:c14af7958ef5 42 * @param port Port to connect to (Port0-Port5)
emilmont 8:c14af7958ef5 43 * @param mask A bitmask to identify which bits in the port should be included (0 - ignore)
emilmont 7:73c5efe92a6c 44 */
emilmont 2:e9a661555b58 45 PortOut(PortName port, int mask = 0xFFFFFFFF);
emilmont 7:73c5efe92a6c 46
emilmont 8:c14af7958ef5 47 /** Write the value to the output port
emilmont 2:e9a661555b58 48 *
emilmont 8:c14af7958ef5 49 * @param value An integer specifying a bit to write for every corresponding PortOut pin
emilmont 2:e9a661555b58 50 */
emilmont 2:e9a661555b58 51 void write(int value);
emilmont 7:73c5efe92a6c 52
emilmont 8:c14af7958ef5 53 /** Read the value currently output on the port
emilmont 2:e9a661555b58 54 *
emilmont 8:c14af7958ef5 55 * @returns
emilmont 8:c14af7958ef5 56 * An integer with each bit corresponding to associated PortOut pin setting
emilmont 2:e9a661555b58 57 */
emilmont 2:e9a661555b58 58 int read();
emilmont 2:e9a661555b58 59
emilmont 8:c14af7958ef5 60 /** A shorthand for write()
emilmont 2:e9a661555b58 61 */
emilmont 2:e9a661555b58 62 PortOut& operator= (int value) {
emilmont 2:e9a661555b58 63 write(value);
emilmont 2:e9a661555b58 64 return *this;
emilmont 2:e9a661555b58 65 }
emilmont 2:e9a661555b58 66
emilmont 2:e9a661555b58 67 PortOut& operator= (PortOut& rhs) {
emilmont 2:e9a661555b58 68 write(rhs.read());
emilmont 2:e9a661555b58 69 return *this;
emilmont 2:e9a661555b58 70 }
emilmont 2:e9a661555b58 71
emilmont 8:c14af7958ef5 72 /** A shorthand for read()
emilmont 2:e9a661555b58 73 */
emilmont 2:e9a661555b58 74 operator int() {
emilmont 2:e9a661555b58 75 return read();
emilmont 2:e9a661555b58 76 }
emilmont 2:e9a661555b58 77
emilmont 2:e9a661555b58 78 private:
emilmont 7:73c5efe92a6c 79 port_object _port;
emilmont 2:e9a661555b58 80 };
emilmont 2:e9a661555b58 81
emilmont 2:e9a661555b58 82 } // namespace mbed
emilmont 2:e9a661555b58 83
emilmont 2:e9a661555b58 84 #endif
emilmont 2:e9a661555b58 85
emilmont 2:e9a661555b58 86 #endif