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 - AnalogIn
emilmont 0:8024c367e29f 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
emilmont 8:c14af7958ef5 3 */
emilmont 0:8024c367e29f 4 #ifndef MBED_ANALOGIN_H
emilmont 0:8024c367e29f 5 #define MBED_ANALOGIN_H
emilmont 0:8024c367e29f 6
emilmont 8:c14af7958ef5 7 #include "platform.h"
emilmont 0:8024c367e29f 8
emilmont 0:8024c367e29f 9 #if DEVICE_ANALOGIN
emilmont 0:8024c367e29f 10
emilmont 0:8024c367e29f 11 namespace mbed {
emilmont 0:8024c367e29f 12
emilmont 8:c14af7958ef5 13 /** An analog input, used for reading the voltage on a pin
emilmont 0:8024c367e29f 14 *
emilmont 0:8024c367e29f 15 * Example:
emilmont 8:c14af7958ef5 16 * @code
emilmont 8:c14af7958ef5 17 * // Print messages when the AnalogIn is greater than 50%
emilmont 8:c14af7958ef5 18 *
emilmont 8:c14af7958ef5 19 * #include "mbed.h"
emilmont 8:c14af7958ef5 20 *
emilmont 8:c14af7958ef5 21 * AnalogIn temperature(p20);
emilmont 8:c14af7958ef5 22 *
emilmont 8:c14af7958ef5 23 * int main() {
emilmont 8:c14af7958ef5 24 * while(1) {
emilmont 8:c14af7958ef5 25 * if(temperature > 0.5) {
emilmont 8:c14af7958ef5 26 * printf("Too hot! (%f)", temperature.read());
emilmont 8:c14af7958ef5 27 * }
emilmont 8:c14af7958ef5 28 * }
emilmont 8:c14af7958ef5 29 * }
emilmont 8:c14af7958ef5 30 * @endcode
emilmont 0:8024c367e29f 31 */
emilmont 8:c14af7958ef5 32 class AnalogIn {
emilmont 0:8024c367e29f 33
emilmont 0:8024c367e29f 34 public:
emilmont 0:8024c367e29f 35
emilmont 8:c14af7958ef5 36 /** Create an AnalogIn, connected to the specified pin
emilmont 0:8024c367e29f 37 *
emilmont 8:c14af7958ef5 38 * @param pin AnalogIn pin to connect to
emilmont 8:c14af7958ef5 39 * @param name (optional) A string to identify the object
emilmont 0:8024c367e29f 40 */
emilmont 8:c14af7958ef5 41 AnalogIn(PinName pin);
emilmont 0:8024c367e29f 42
emilmont 8:c14af7958ef5 43 /** Read the input voltage, represented as a float in the range [0.0, 1.0]
emilmont 0:8024c367e29f 44 *
emilmont 8:c14af7958ef5 45 * @returns A floating-point value representing the current input voltage, measured as a percentage
emilmont 0:8024c367e29f 46 */
emilmont 8:c14af7958ef5 47 float read();
emilmont 0:8024c367e29f 48
emilmont 8:c14af7958ef5 49 /** Read the input voltage, represented as an unsigned short in the range [0x0, 0xFFFF]
emilmont 0:8024c367e29f 50 *
emilmont 8:c14af7958ef5 51 * @returns
emilmont 8:c14af7958ef5 52 * 16-bit unsigned short representing the current input voltage, normalised to a 16-bit value
emilmont 0:8024c367e29f 53 */
emilmont 0:8024c367e29f 54 unsigned short read_u16();
emilmont 0:8024c367e29f 55
emilmont 0:8024c367e29f 56 #ifdef MBED_OPERATORS
emilmont 8:c14af7958ef5 57 /** An operator shorthand for read()
emilmont 0:8024c367e29f 58 *
emilmont 8:c14af7958ef5 59 * The float() operator can be used as a shorthand for read() to simplify common code sequences
emilmont 0:8024c367e29f 60 *
emilmont 0:8024c367e29f 61 * Example:
emilmont 8:c14af7958ef5 62 * @code
emilmont 8:c14af7958ef5 63 * float x = volume.read();
emilmont 8:c14af7958ef5 64 * float x = volume;
emilmont 8:c14af7958ef5 65 *
emilmont 8:c14af7958ef5 66 * if(volume.read() > 0.25) { ... }
emilmont 8:c14af7958ef5 67 * if(volume > 0.25) { ... }
emilmont 8:c14af7958ef5 68 * @endcode
emilmont 0:8024c367e29f 69 */
emilmont 0:8024c367e29f 70 operator float();
emilmont 0:8024c367e29f 71 #endif
emilmont 0:8024c367e29f 72
emilmont 0:8024c367e29f 73 protected:
emilmont 0:8024c367e29f 74 ADCName _adc;
emilmont 0:8024c367e29f 75 };
emilmont 0:8024c367e29f 76
emilmont 0:8024c367e29f 77 } // namespace mbed
emilmont 0:8024c367e29f 78
emilmont 0:8024c367e29f 79 #endif
emilmont 0:8024c367e29f 80
emilmont 0:8024c367e29f 81 #endif