Nothing Special / mbed-STM32F030F4

Dependents:   STM32F031_blink_LED_2

Committer:
mega64
Date:
Tue Feb 14 21:52:10 2017 +0000
Revision:
11:79a2d67cd509
Parent:
0:38ccae254a29
repair the effects of improvements in the mbed environment (Ch.1, serial_set_flow_control )

Who changed what in which revision?

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