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 - PortInOut
emilmont 2:e9a661555b58 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
emilmont 7:73c5efe92a6c 3 */
emilmont 2:e9a661555b58 4 #ifndef MBED_PORTIN_H
emilmont 2:e9a661555b58 5 #define MBED_PORTIN_H
emilmont 2:e9a661555b58 6
emilmont 8:c14af7958ef5 7 #include "platform.h"
emilmont 2:e9a661555b58 8
emilmont 2:e9a661555b58 9 #if DEVICE_PORTIN
emilmont 2:e9a661555b58 10
emilmont 7:73c5efe92a6c 11 #include "port_api.h"
emilmont 7:73c5efe92a6c 12
emilmont 2:e9a661555b58 13 namespace mbed {
emilmont 2:e9a661555b58 14
emilmont 8:c14af7958ef5 15 /** A multiple pin digital input
emilmont 2:e9a661555b58 16 *
emilmont 2:e9a661555b58 17 * Example:
emilmont 8:c14af7958ef5 18 * @code
emilmont 8:c14af7958ef5 19 * // Switch on an LED if any of mbed pins 21-26 is high
emilmont 8:c14af7958ef5 20 *
emilmont 8:c14af7958ef5 21 * #include "mbed.h"
emilmont 8:c14af7958ef5 22 *
emilmont 8:c14af7958ef5 23 * PortIn p(Port2, 0x0000003F); // p21-p26
emilmont 8:c14af7958ef5 24 * DigitalOut ind(LED4);
emilmont 8:c14af7958ef5 25 *
emilmont 8:c14af7958ef5 26 * int main() {
emilmont 8:c14af7958ef5 27 * while(1) {
emilmont 8:c14af7958ef5 28 * int pins = p.read();
emilmont 8:c14af7958ef5 29 * if(pins) {
emilmont 8:c14af7958ef5 30 * ind = 1;
emilmont 8:c14af7958ef5 31 * } else {
emilmont 8:c14af7958ef5 32 * ind = 0;
emilmont 8:c14af7958ef5 33 * }
emilmont 8:c14af7958ef5 34 * }
emilmont 8:c14af7958ef5 35 * }
emilmont 8:c14af7958ef5 36 * @endcode
emilmont 2:e9a661555b58 37 */
emilmont 2:e9a661555b58 38 class PortIn {
emilmont 2:e9a661555b58 39 public:
emilmont 8:c14af7958ef5 40
emilmont 8:c14af7958ef5 41 /** Create an PortIn, connected to the specified port
emilmont 2:e9a661555b58 42 *
emilmont 8:c14af7958ef5 43 * @param port Port to connect to (Port0-Port5)
emilmont 8:c14af7958ef5 44 * @param mask A bitmask to identify which bits in the port should be included (0 - ignore)
emilmont 2:e9a661555b58 45 */
emilmont 2:e9a661555b58 46 PortIn(PortName port, int mask = 0xFFFFFFFF);
emilmont 7:73c5efe92a6c 47
emilmont 8:c14af7958ef5 48 /** Read the value currently output on the port
emilmont 2:e9a661555b58 49 *
emilmont 8:c14af7958ef5 50 * @returns
emilmont 8:c14af7958ef5 51 * An integer with each bit corresponding to associated port pin setting
emilmont 2:e9a661555b58 52 */
emilmont 2:e9a661555b58 53 int read();
emilmont 7:73c5efe92a6c 54
emilmont 8:c14af7958ef5 55 /** Set the input pin mode
emilmont 2:e9a661555b58 56 *
emilmont 8:c14af7958ef5 57 * @param mode PullUp, PullDown, PullNone, OpenDrain
emilmont 2:e9a661555b58 58 */
emilmont 2:e9a661555b58 59 void mode(PinMode mode);
emilmont 2:e9a661555b58 60
emilmont 8:c14af7958ef5 61 /** A shorthand for read()
emilmont 2:e9a661555b58 62 */
emilmont 2:e9a661555b58 63 operator int() {
emilmont 2:e9a661555b58 64 return read();
emilmont 2:e9a661555b58 65 }
emilmont 2:e9a661555b58 66
emilmont 2:e9a661555b58 67 private:
emilmont 7:73c5efe92a6c 68 port_object _port;
emilmont 2:e9a661555b58 69 };
emilmont 2:e9a661555b58 70
emilmont 2:e9a661555b58 71 } // namespace mbed
emilmont 2:e9a661555b58 72
emilmont 2:e9a661555b58 73 #endif
emilmont 2:e9a661555b58 74
emilmont 2:e9a661555b58 75 #endif