mbed libraries for KL25Z
Timer.h@8:c14af7958ef5, 2012-11-09 (annotated)
- Committer:
- emilmont
- Date:
- Fri Nov 09 11:33:53 2012 +0000
- Revision:
- 8:c14af7958ef5
- Parent:
- 2:e9a661555b58
- Child:
- 9:663789d7729f
SPI driver; ADC driver; DAC driver; microlib support; general bugfixing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilmont | 2:e9a661555b58 | 1 | /* mbed Microcontroller Library - Timer |
emilmont | 2:e9a661555b58 | 2 | * Copyright (c) 2007-2009 ARM Limited. All rights reserved. |
emilmont | 8:c14af7958ef5 | 3 | */ |
emilmont | 2:e9a661555b58 | 4 | #ifndef MBED_TIMER_H |
emilmont | 2:e9a661555b58 | 5 | #define MBED_TIMER_H |
emilmont | 2:e9a661555b58 | 6 | |
emilmont | 2:e9a661555b58 | 7 | #include "platform.h" |
emilmont | 2:e9a661555b58 | 8 | |
emilmont | 2:e9a661555b58 | 9 | namespace mbed { |
emilmont | 2:e9a661555b58 | 10 | |
emilmont | 8:c14af7958ef5 | 11 | /** A general purpose timer |
emilmont | 2:e9a661555b58 | 12 | * |
emilmont | 2:e9a661555b58 | 13 | * Example: |
emilmont | 8:c14af7958ef5 | 14 | * @code |
emilmont | 8:c14af7958ef5 | 15 | * // Count the time to toggle a LED |
emilmont | 8:c14af7958ef5 | 16 | * |
emilmont | 8:c14af7958ef5 | 17 | * #include "mbed.h" |
emilmont | 8:c14af7958ef5 | 18 | * |
emilmont | 8:c14af7958ef5 | 19 | * Timer timer; |
emilmont | 8:c14af7958ef5 | 20 | * DigitalOut led(LED1); |
emilmont | 8:c14af7958ef5 | 21 | * int begin, end; |
emilmont | 8:c14af7958ef5 | 22 | * |
emilmont | 8:c14af7958ef5 | 23 | * int main() { |
emilmont | 8:c14af7958ef5 | 24 | * timer.start(); |
emilmont | 8:c14af7958ef5 | 25 | * begin = timer.read_us(); |
emilmont | 8:c14af7958ef5 | 26 | * led = !led; |
emilmont | 8:c14af7958ef5 | 27 | * end = timer.read_us(); |
emilmont | 8:c14af7958ef5 | 28 | * printf("Toggle the led takes %d us", end - begin); |
emilmont | 8:c14af7958ef5 | 29 | * } |
emilmont | 8:c14af7958ef5 | 30 | * @endcode |
emilmont | 2:e9a661555b58 | 31 | */ |
emilmont | 8:c14af7958ef5 | 32 | class Timer { |
emilmont | 2:e9a661555b58 | 33 | |
emilmont | 2:e9a661555b58 | 34 | public: |
emilmont | 8:c14af7958ef5 | 35 | Timer(); |
emilmont | 2:e9a661555b58 | 36 | |
emilmont | 8:c14af7958ef5 | 37 | /** Start the timer |
emilmont | 2:e9a661555b58 | 38 | */ |
emilmont | 2:e9a661555b58 | 39 | void start(); |
emilmont | 2:e9a661555b58 | 40 | |
emilmont | 8:c14af7958ef5 | 41 | /** Stop the timer |
emilmont | 2:e9a661555b58 | 42 | */ |
emilmont | 2:e9a661555b58 | 43 | void stop(); |
emilmont | 2:e9a661555b58 | 44 | |
emilmont | 8:c14af7958ef5 | 45 | /** Reset the timer to 0. |
emilmont | 2:e9a661555b58 | 46 | * |
emilmont | 2:e9a661555b58 | 47 | * If it was already counting, it will continue |
emilmont | 2:e9a661555b58 | 48 | */ |
emilmont | 2:e9a661555b58 | 49 | void reset(); |
emilmont | 2:e9a661555b58 | 50 | |
emilmont | 8:c14af7958ef5 | 51 | /** Get the time passed in seconds |
emilmont | 2:e9a661555b58 | 52 | */ |
emilmont | 2:e9a661555b58 | 53 | float read(); |
emilmont | 2:e9a661555b58 | 54 | |
emilmont | 8:c14af7958ef5 | 55 | /** Get the time passed in mili-seconds |
emilmont | 2:e9a661555b58 | 56 | */ |
emilmont | 2:e9a661555b58 | 57 | int read_ms(); |
emilmont | 2:e9a661555b58 | 58 | |
emilmont | 8:c14af7958ef5 | 59 | /** Get the time passed in micro-seconds |
emilmont | 2:e9a661555b58 | 60 | */ |
emilmont | 2:e9a661555b58 | 61 | int read_us(); |
emilmont | 2:e9a661555b58 | 62 | |
emilmont | 2:e9a661555b58 | 63 | #ifdef MBED_OPERATORS |
emilmont | 2:e9a661555b58 | 64 | operator float(); |
emilmont | 2:e9a661555b58 | 65 | #endif |
emilmont | 2:e9a661555b58 | 66 | |
emilmont | 2:e9a661555b58 | 67 | protected: |
emilmont | 8:c14af7958ef5 | 68 | int slicetime(); |
emilmont | 2:e9a661555b58 | 69 | int _running; // whether the timer is running |
emilmont | 2:e9a661555b58 | 70 | unsigned int _start; // the start time of the latest slice |
emilmont | 2:e9a661555b58 | 71 | int _time; // any accumulated time from previous slices |
emilmont | 2:e9a661555b58 | 72 | }; |
emilmont | 2:e9a661555b58 | 73 | |
emilmont | 2:e9a661555b58 | 74 | } // namespace mbed |
emilmont | 2:e9a661555b58 | 75 | |
emilmont | 2:e9a661555b58 | 76 | #endif |