The code from https://github.com/vpcola/Nucleo

Committer:
sinrab
Date:
Wed Oct 08 11:00:24 2014 +0000
Revision:
0:5464d5e415e5
The code from https://github.com/vpcola/Nucleo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sinrab 0:5464d5e415e5 1 /* mbed Microcontroller Library
sinrab 0:5464d5e415e5 2 * Copyright (c) 2006-2013 ARM Limited
sinrab 0:5464d5e415e5 3 *
sinrab 0:5464d5e415e5 4 * Licensed under the Apache License, Version 2.0 (the "License");
sinrab 0:5464d5e415e5 5 * you may not use this file except in compliance with the License.
sinrab 0:5464d5e415e5 6 * You may obtain a copy of the License at
sinrab 0:5464d5e415e5 7 *
sinrab 0:5464d5e415e5 8 * http://www.apache.org/licenses/LICENSE-2.0
sinrab 0:5464d5e415e5 9 *
sinrab 0:5464d5e415e5 10 * Unless required by applicable law or agreed to in writing, software
sinrab 0:5464d5e415e5 11 * distributed under the License is distributed on an "AS IS" BASIS,
sinrab 0:5464d5e415e5 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sinrab 0:5464d5e415e5 13 * See the License for the specific language governing permissions and
sinrab 0:5464d5e415e5 14 * limitations under the License.
sinrab 0:5464d5e415e5 15 */
sinrab 0:5464d5e415e5 16 #ifndef MBED_ANALOGIN_H
sinrab 0:5464d5e415e5 17 #define MBED_ANALOGIN_H
sinrab 0:5464d5e415e5 18
sinrab 0:5464d5e415e5 19 #include "platform.h"
sinrab 0:5464d5e415e5 20
sinrab 0:5464d5e415e5 21 #if DEVICE_ANALOGIN
sinrab 0:5464d5e415e5 22
sinrab 0:5464d5e415e5 23 #include "analogin_api.h"
sinrab 0:5464d5e415e5 24
sinrab 0:5464d5e415e5 25 namespace mbed {
sinrab 0:5464d5e415e5 26
sinrab 0:5464d5e415e5 27 /** An analog input, used for reading the voltage on a pin
sinrab 0:5464d5e415e5 28 *
sinrab 0:5464d5e415e5 29 * Example:
sinrab 0:5464d5e415e5 30 * @code
sinrab 0:5464d5e415e5 31 * // Print messages when the AnalogIn is greater than 50%
sinrab 0:5464d5e415e5 32 *
sinrab 0:5464d5e415e5 33 * #include "mbed.h"
sinrab 0:5464d5e415e5 34 *
sinrab 0:5464d5e415e5 35 * AnalogIn temperature(p20);
sinrab 0:5464d5e415e5 36 *
sinrab 0:5464d5e415e5 37 * int main() {
sinrab 0:5464d5e415e5 38 * while(1) {
sinrab 0:5464d5e415e5 39 * if(temperature > 0.5) {
sinrab 0:5464d5e415e5 40 * printf("Too hot! (%f)", temperature.read());
sinrab 0:5464d5e415e5 41 * }
sinrab 0:5464d5e415e5 42 * }
sinrab 0:5464d5e415e5 43 * }
sinrab 0:5464d5e415e5 44 * @endcode
sinrab 0:5464d5e415e5 45 */
sinrab 0:5464d5e415e5 46 class AnalogIn {
sinrab 0:5464d5e415e5 47
sinrab 0:5464d5e415e5 48 public:
sinrab 0:5464d5e415e5 49
sinrab 0:5464d5e415e5 50 /** Create an AnalogIn, connected to the specified pin
sinrab 0:5464d5e415e5 51 *
sinrab 0:5464d5e415e5 52 * @param pin AnalogIn pin to connect to
sinrab 0:5464d5e415e5 53 * @param name (optional) A string to identify the object
sinrab 0:5464d5e415e5 54 */
sinrab 0:5464d5e415e5 55 AnalogIn(PinName pin) {
sinrab 0:5464d5e415e5 56 analogin_init(&_adc, pin);
sinrab 0:5464d5e415e5 57 }
sinrab 0:5464d5e415e5 58
sinrab 0:5464d5e415e5 59 /** Read the input voltage, represented as a float in the range [0.0, 1.0]
sinrab 0:5464d5e415e5 60 *
sinrab 0:5464d5e415e5 61 * @returns A floating-point value representing the current input voltage, measured as a percentage
sinrab 0:5464d5e415e5 62 */
sinrab 0:5464d5e415e5 63 float read() {
sinrab 0:5464d5e415e5 64 return analogin_read(&_adc);
sinrab 0:5464d5e415e5 65 }
sinrab 0:5464d5e415e5 66
sinrab 0:5464d5e415e5 67 /** Read the input voltage, represented as an unsigned short in the range [0x0, 0xFFFF]
sinrab 0:5464d5e415e5 68 *
sinrab 0:5464d5e415e5 69 * @returns
sinrab 0:5464d5e415e5 70 * 16-bit unsigned short representing the current input voltage, normalised to a 16-bit value
sinrab 0:5464d5e415e5 71 */
sinrab 0:5464d5e415e5 72 unsigned short read_u16() {
sinrab 0:5464d5e415e5 73 return analogin_read_u16(&_adc);
sinrab 0:5464d5e415e5 74 }
sinrab 0:5464d5e415e5 75
sinrab 0:5464d5e415e5 76 #ifdef MBED_OPERATORS
sinrab 0:5464d5e415e5 77 /** An operator shorthand for read()
sinrab 0:5464d5e415e5 78 *
sinrab 0:5464d5e415e5 79 * The float() operator can be used as a shorthand for read() to simplify common code sequences
sinrab 0:5464d5e415e5 80 *
sinrab 0:5464d5e415e5 81 * Example:
sinrab 0:5464d5e415e5 82 * @code
sinrab 0:5464d5e415e5 83 * float x = volume.read();
sinrab 0:5464d5e415e5 84 * float x = volume;
sinrab 0:5464d5e415e5 85 *
sinrab 0:5464d5e415e5 86 * if(volume.read() > 0.25) { ... }
sinrab 0:5464d5e415e5 87 * if(volume > 0.25) { ... }
sinrab 0:5464d5e415e5 88 * @endcode
sinrab 0:5464d5e415e5 89 */
sinrab 0:5464d5e415e5 90 operator float() {
sinrab 0:5464d5e415e5 91 return read();
sinrab 0:5464d5e415e5 92 }
sinrab 0:5464d5e415e5 93 #endif
sinrab 0:5464d5e415e5 94
sinrab 0:5464d5e415e5 95 protected:
sinrab 0:5464d5e415e5 96 analogin_t _adc;
sinrab 0:5464d5e415e5 97 };
sinrab 0:5464d5e415e5 98
sinrab 0:5464d5e415e5 99 } // namespace mbed
sinrab 0:5464d5e415e5 100
sinrab 0:5464d5e415e5 101 #endif
sinrab 0:5464d5e415e5 102
sinrab 0:5464d5e415e5 103 #endif
sinrab 0:5464d5e415e5 104