]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/api/Timeout.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / api / Timeout.h
1 /* mbed Microcontroller Library
2  * Copyright (c) 2006-2013 ARM Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef MBED_TIMEOUT_H
17 #define MBED_TIMEOUT_H
18
19 #include "Ticker.h"
20
21 namespace mbed {
22
23 /** A Timeout is used to call a function at a point in the future
24  *
25  * You can use as many seperate Timeout objects as you require.
26  *
27  * Example:
28  * @code
29  * // Blink until timeout.
30  *
31  * #include "mbed.h"
32  *
33  * Timeout timeout;
34  * DigitalOut led(LED1);
35  *
36  * int on = 1;
37  *
38  * void attimeout() {
39  *     on = 0;
40  * }
41  *
42  * int main() {
43  *     timeout.attach(&attimeout, 5);
44  *     while(on) {
45  *         led = !led;
46  *         wait(0.2);
47  *     }
48  * }
49  * @endcode
50  */
51 class Timeout : public Ticker {
52
53 protected:
54     virtual void handler();
55 };
56
57 } // namespace mbed
58
59 #endif