strat des robots

Fork of CRAC-Strat_2017 by CRAC Team

Committer:
ClementBreteau
Date:
Fri May 19 17:14:07 2017 +0000
Revision:
17:d1594579eec6
Parent:
0:ad97421fb1fb
strat du robot, 19-05-2017, 19h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
antbig 0:ad97421fb1fb 1 /* mbed Microcontroller Library - Timer
antbig 0:ad97421fb1fb 2 * Copyright (c) 2007-2009 ARM Limited. All rights reserved.
antbig 0:ad97421fb1fb 3 */
antbig 0:ad97421fb1fb 4
antbig 0:ad97421fb1fb 5 #ifndef MBED_TIMER_H
antbig 0:ad97421fb1fb 6 #define MBED_TIMER_H
antbig 0:ad97421fb1fb 7
antbig 0:ad97421fb1fb 8 #include "platform.h"
antbig 0:ad97421fb1fb 9 #include "PinNames.h"
antbig 0:ad97421fb1fb 10 #include "PeripheralNames.h"
antbig 0:ad97421fb1fb 11 #include "Base.h"
antbig 0:ad97421fb1fb 12
antbig 0:ad97421fb1fb 13 namespace mbed {
antbig 0:ad97421fb1fb 14
antbig 0:ad97421fb1fb 15 /* Class: Timer
antbig 0:ad97421fb1fb 16 * A general purpose timer
antbig 0:ad97421fb1fb 17 *
antbig 0:ad97421fb1fb 18 * Example:
antbig 0:ad97421fb1fb 19 * > // Count the time to toggle a LED
antbig 0:ad97421fb1fb 20 * >
antbig 0:ad97421fb1fb 21 * > #include "mbed.h"
antbig 0:ad97421fb1fb 22 * >
antbig 0:ad97421fb1fb 23 * > Timer timer;
antbig 0:ad97421fb1fb 24 * > DigitalOut led(LED1);
antbig 0:ad97421fb1fb 25 * > int begin, end;
antbig 0:ad97421fb1fb 26 * >
antbig 0:ad97421fb1fb 27 * > int main() {
antbig 0:ad97421fb1fb 28 * > timer.start();
antbig 0:ad97421fb1fb 29 * > begin = timer.read_us();
antbig 0:ad97421fb1fb 30 * > led = !led;
antbig 0:ad97421fb1fb 31 * > end = timer.read_us();
antbig 0:ad97421fb1fb 32 * > printf("Toggle the led takes %d us", end - begin);
antbig 0:ad97421fb1fb 33 * > }
antbig 0:ad97421fb1fb 34 */
antbig 0:ad97421fb1fb 35 class Timer : public Base {
antbig 0:ad97421fb1fb 36
antbig 0:ad97421fb1fb 37 public:
antbig 0:ad97421fb1fb 38
antbig 0:ad97421fb1fb 39 Timer(const char *name = NULL);
antbig 0:ad97421fb1fb 40
antbig 0:ad97421fb1fb 41 /* Function: start
antbig 0:ad97421fb1fb 42 * Start the timer
antbig 0:ad97421fb1fb 43 */
antbig 0:ad97421fb1fb 44 void start();
antbig 0:ad97421fb1fb 45
antbig 0:ad97421fb1fb 46 /* Function: stop
antbig 0:ad97421fb1fb 47 * Stop the timer
antbig 0:ad97421fb1fb 48 */
antbig 0:ad97421fb1fb 49 void stop();
antbig 0:ad97421fb1fb 50
antbig 0:ad97421fb1fb 51 /* Function: reset
antbig 0:ad97421fb1fb 52 * Reset the timer to 0.
antbig 0:ad97421fb1fb 53 *
antbig 0:ad97421fb1fb 54 * If it was already counting, it will continue
antbig 0:ad97421fb1fb 55 */
antbig 0:ad97421fb1fb 56 void reset();
antbig 0:ad97421fb1fb 57
antbig 0:ad97421fb1fb 58 /* Function: read
antbig 0:ad97421fb1fb 59 * Get the time passed in seconds
antbig 0:ad97421fb1fb 60 */
antbig 0:ad97421fb1fb 61 float read();
antbig 0:ad97421fb1fb 62
antbig 0:ad97421fb1fb 63 /* Function: read_ms
antbig 0:ad97421fb1fb 64 * Get the time passed in mili-seconds
antbig 0:ad97421fb1fb 65 */
antbig 0:ad97421fb1fb 66 int read_ms();
antbig 0:ad97421fb1fb 67
antbig 0:ad97421fb1fb 68 /* Function: read_us
antbig 0:ad97421fb1fb 69 * Get the time passed in micro-seconds
antbig 0:ad97421fb1fb 70 */
antbig 0:ad97421fb1fb 71 int read_us();
antbig 0:ad97421fb1fb 72
antbig 0:ad97421fb1fb 73 #ifdef MBED_OPERATORS
antbig 0:ad97421fb1fb 74 operator float();
antbig 0:ad97421fb1fb 75 #endif
antbig 0:ad97421fb1fb 76
antbig 0:ad97421fb1fb 77 #ifdef MBED_RPC
antbig 0:ad97421fb1fb 78 virtual const struct rpc_method *get_rpc_methods();
antbig 0:ad97421fb1fb 79 static struct rpc_class *get_rpc_class();
antbig 0:ad97421fb1fb 80 #endif
antbig 0:ad97421fb1fb 81
antbig 0:ad97421fb1fb 82 protected:
antbig 0:ad97421fb1fb 83
antbig 0:ad97421fb1fb 84 int slicetime();
antbig 0:ad97421fb1fb 85 int _running; // whether the timer is running
antbig 0:ad97421fb1fb 86 unsigned int _start; // the start time of the latest slice
antbig 0:ad97421fb1fb 87 int _time; // any accumulated time from previous slices
antbig 0:ad97421fb1fb 88
antbig 0:ad97421fb1fb 89 };
antbig 0:ad97421fb1fb 90
antbig 0:ad97421fb1fb 91 } // namespace mbed
antbig 0:ad97421fb1fb 92
antbig 0:ad97421fb1fb 93 #endif