The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
170:e95d10626187
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1
AnnaBridge 156:ff21514d8981 2 /** \addtogroup platform */
AnnaBridge 156:ff21514d8981 3 /** @{*/
AnnaBridge 158:1c57384330a6 4 /**
AnnaBridge 158:1c57384330a6 5 * \defgroup platform_wait_api wait_api functions
AnnaBridge 158:1c57384330a6 6 * @{
AnnaBridge 158:1c57384330a6 7 */
AnnaBridge 170:e95d10626187 8
AnnaBridge 156:ff21514d8981 9 /* mbed Microcontroller Library
AnnaBridge 156:ff21514d8981 10 * Copyright (c) 2006-2013 ARM Limited
AnnaBridge 172:65be27845400 11 * SPDX-License-Identifier: Apache-2.0
AnnaBridge 156:ff21514d8981 12 *
AnnaBridge 156:ff21514d8981 13 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 156:ff21514d8981 14 * you may not use this file except in compliance with the License.
AnnaBridge 156:ff21514d8981 15 * You may obtain a copy of the License at
AnnaBridge 156:ff21514d8981 16 *
AnnaBridge 156:ff21514d8981 17 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 156:ff21514d8981 18 *
AnnaBridge 156:ff21514d8981 19 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 156:ff21514d8981 20 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 156:ff21514d8981 21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 156:ff21514d8981 22 * See the License for the specific language governing permissions and
AnnaBridge 156:ff21514d8981 23 * limitations under the License.
AnnaBridge 156:ff21514d8981 24 */
AnnaBridge 156:ff21514d8981 25 #ifndef MBED_WAIT_API_H
AnnaBridge 156:ff21514d8981 26 #define MBED_WAIT_API_H
AnnaBridge 156:ff21514d8981 27
AnnaBridge 156:ff21514d8981 28 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 29 extern "C" {
AnnaBridge 156:ff21514d8981 30 #endif
AnnaBridge 156:ff21514d8981 31
AnnaBridge 156:ff21514d8981 32 /** Generic wait functions.
AnnaBridge 156:ff21514d8981 33 *
AnnaBridge 156:ff21514d8981 34 * These provide simple NOP type wait capabilities.
AnnaBridge 156:ff21514d8981 35 *
AnnaBridge 156:ff21514d8981 36 * Example:
AnnaBridge 156:ff21514d8981 37 * @code
AnnaBridge 156:ff21514d8981 38 * #include "mbed.h"
AnnaBridge 156:ff21514d8981 39 *
AnnaBridge 156:ff21514d8981 40 * DigitalOut heartbeat(LED1);
AnnaBridge 156:ff21514d8981 41 *
AnnaBridge 156:ff21514d8981 42 * int main() {
AnnaBridge 156:ff21514d8981 43 * while (1) {
AnnaBridge 156:ff21514d8981 44 * heartbeat = 1;
AnnaBridge 156:ff21514d8981 45 * wait(0.5);
AnnaBridge 156:ff21514d8981 46 * heartbeat = 0;
AnnaBridge 156:ff21514d8981 47 * wait(0.5);
AnnaBridge 156:ff21514d8981 48 * }
AnnaBridge 156:ff21514d8981 49 * }
AnnaBridge 156:ff21514d8981 50 * @endcode
AnnaBridge 156:ff21514d8981 51 */
AnnaBridge 156:ff21514d8981 52
AnnaBridge 156:ff21514d8981 53 /** Waits for a number of seconds, with microsecond resolution (within
AnnaBridge 156:ff21514d8981 54 * the accuracy of single precision floating point).
AnnaBridge 156:ff21514d8981 55 *
AnnaBridge 156:ff21514d8981 56 * @param s number of seconds to wait
AnnaBridge 170:e95d10626187 57 *
AnnaBridge 168:b9e159c1930a 58 * @note
AnnaBridge 172:65be27845400 59 * If the RTOS is present, this function spins to get the exact number of microseconds for
AnnaBridge 172:65be27845400 60 * microsecond precision up to 10 milliseconds. If delay is larger than 10 milliseconds and not in ISR, it is the same as
AnnaBridge 172:65be27845400 61 * `wait_ms`. We recommend `wait_us` and `wait_ms` over `wait`.
AnnaBridge 156:ff21514d8981 62 */
AnnaBridge 156:ff21514d8981 63 void wait(float s);
AnnaBridge 156:ff21514d8981 64
AnnaBridge 156:ff21514d8981 65 /** Waits a number of milliseconds.
AnnaBridge 156:ff21514d8981 66 *
AnnaBridge 156:ff21514d8981 67 * @param ms the whole number of milliseconds to wait
AnnaBridge 170:e95d10626187 68 *
AnnaBridge 168:b9e159c1930a 69 * @note
AnnaBridge 172:65be27845400 70 * If the RTOS is present, it calls ThisThread::sleep_for(), which is same as CMSIS osDelay().
AnnaBridge 172:65be27845400 71 * You can't call this from interrupts, and it doesn't lock hardware sleep.
AnnaBridge 156:ff21514d8981 72 */
AnnaBridge 156:ff21514d8981 73 void wait_ms(int ms);
AnnaBridge 156:ff21514d8981 74
AnnaBridge 156:ff21514d8981 75 /** Waits a number of microseconds.
AnnaBridge 156:ff21514d8981 76 *
AnnaBridge 156:ff21514d8981 77 * @param us the whole number of microseconds to wait
AnnaBridge 170:e95d10626187 78 *
AnnaBridge 168:b9e159c1930a 79 * @note
AnnaBridge 172:65be27845400 80 * This function always spins to get the exact number of microseconds.
AnnaBridge 172:65be27845400 81 * If RTOS is present, this will affect power (by preventing deep sleep) and
AnnaBridge 172:65be27845400 82 * multithread performance. Therefore, spinning for millisecond wait is not recommended.
AnnaBridge 156:ff21514d8981 83 */
AnnaBridge 156:ff21514d8981 84 void wait_us(int us);
AnnaBridge 156:ff21514d8981 85
AnnaBridge 156:ff21514d8981 86 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 87 }
AnnaBridge 156:ff21514d8981 88 #endif
AnnaBridge 156:ff21514d8981 89
AnnaBridge 156:ff21514d8981 90 #endif
AnnaBridge 156:ff21514d8981 91
AnnaBridge 156:ff21514d8981 92 /** @}*/
AnnaBridge 158:1c57384330a6 93 /** @}*/