mouvement AX12 petit robot version 2

Fork of command_AX12_petit_robot_v2 by CRAC Team

Committer:
ClementBreteau
Date:
Fri May 12 14:35:09 2017 +0000
Revision:
7:ad4a19e26b84
Parent:
2:99b1cb0d9f5e
position ax12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SquirrelGod 2:99b1cb0d9f5e 1 /* mbed Microcontroller Library - Timeout
SquirrelGod 2:99b1cb0d9f5e 2 * Copyright (c) 2007-2009 ARM Limited. All rights reserved.
SquirrelGod 2:99b1cb0d9f5e 3 */
SquirrelGod 2:99b1cb0d9f5e 4
SquirrelGod 2:99b1cb0d9f5e 5 #ifndef MBED_TIMEOUT_H
SquirrelGod 2:99b1cb0d9f5e 6 #define MBED_TIMEOUT_H
SquirrelGod 2:99b1cb0d9f5e 7
SquirrelGod 2:99b1cb0d9f5e 8 #include "Ticker.h"
SquirrelGod 2:99b1cb0d9f5e 9
SquirrelGod 2:99b1cb0d9f5e 10 namespace mbed {
SquirrelGod 2:99b1cb0d9f5e 11
SquirrelGod 2:99b1cb0d9f5e 12 /* Class: Timeout
SquirrelGod 2:99b1cb0d9f5e 13 * A Timeout is used to call a function at a point in the future
SquirrelGod 2:99b1cb0d9f5e 14 *
SquirrelGod 2:99b1cb0d9f5e 15 * You can use as many seperate Timeout objects as you require.
SquirrelGod 2:99b1cb0d9f5e 16 *
SquirrelGod 2:99b1cb0d9f5e 17 * Example:
SquirrelGod 2:99b1cb0d9f5e 18 * > // Blink until timeout.
SquirrelGod 2:99b1cb0d9f5e 19 * >
SquirrelGod 2:99b1cb0d9f5e 20 * > #include "mbed.h"
SquirrelGod 2:99b1cb0d9f5e 21 * >
SquirrelGod 2:99b1cb0d9f5e 22 * > Timeout timeout;
SquirrelGod 2:99b1cb0d9f5e 23 * > DigitalOut led(LED1);
SquirrelGod 2:99b1cb0d9f5e 24 * >
SquirrelGod 2:99b1cb0d9f5e 25 * > int on = 1;
SquirrelGod 2:99b1cb0d9f5e 26 * >
SquirrelGod 2:99b1cb0d9f5e 27 * > void attimeout() {
SquirrelGod 2:99b1cb0d9f5e 28 * > on = 0;
SquirrelGod 2:99b1cb0d9f5e 29 * > }
SquirrelGod 2:99b1cb0d9f5e 30 * >
SquirrelGod 2:99b1cb0d9f5e 31 * > int main() {
SquirrelGod 2:99b1cb0d9f5e 32 * > timeout.attach(&attimeout, 5);
SquirrelGod 2:99b1cb0d9f5e 33 * > while(on) {
SquirrelGod 2:99b1cb0d9f5e 34 * > led = !led;
SquirrelGod 2:99b1cb0d9f5e 35 * > wait(0.2);
SquirrelGod 2:99b1cb0d9f5e 36 * > }
SquirrelGod 2:99b1cb0d9f5e 37 * > }
SquirrelGod 2:99b1cb0d9f5e 38 */
SquirrelGod 2:99b1cb0d9f5e 39 class Timeout : public Ticker {
SquirrelGod 2:99b1cb0d9f5e 40
SquirrelGod 2:99b1cb0d9f5e 41 #if 0 // For documentation
SquirrelGod 2:99b1cb0d9f5e 42
SquirrelGod 2:99b1cb0d9f5e 43 /* Function: attach
SquirrelGod 2:99b1cb0d9f5e 44 * Attach a function to be called by the Timeout, specifiying the delay in seconds
SquirrelGod 2:99b1cb0d9f5e 45 *
SquirrelGod 2:99b1cb0d9f5e 46 * Variables:
SquirrelGod 2:99b1cb0d9f5e 47 * fptr - pointer to the function to be called
SquirrelGod 2:99b1cb0d9f5e 48 * t - the time before the call in seconds
SquirrelGod 2:99b1cb0d9f5e 49 */
SquirrelGod 2:99b1cb0d9f5e 50 void attach(void (*fptr)(void), float t) {
SquirrelGod 2:99b1cb0d9f5e 51 attach_us(fptr, t * 1000000.0f);
SquirrelGod 2:99b1cb0d9f5e 52 }
SquirrelGod 2:99b1cb0d9f5e 53
SquirrelGod 2:99b1cb0d9f5e 54 /* Function: attach
SquirrelGod 2:99b1cb0d9f5e 55 * Attach a member function to be called by the Timeout, specifiying the delay in seconds
SquirrelGod 2:99b1cb0d9f5e 56 *
SquirrelGod 2:99b1cb0d9f5e 57 * Variables:
SquirrelGod 2:99b1cb0d9f5e 58 * tptr - pointer to the object to call the member function on
SquirrelGod 2:99b1cb0d9f5e 59 * mptr - pointer to the member function to be called
SquirrelGod 2:99b1cb0d9f5e 60 * t - the time before the calls in seconds
SquirrelGod 2:99b1cb0d9f5e 61 */
SquirrelGod 2:99b1cb0d9f5e 62 template<typename T>
SquirrelGod 2:99b1cb0d9f5e 63 void attach(T* tptr, void (T::*mptr)(void), float t) {
SquirrelGod 2:99b1cb0d9f5e 64 attach_us(tptr, mptr, t * 1000000.0f);
SquirrelGod 2:99b1cb0d9f5e 65 }
SquirrelGod 2:99b1cb0d9f5e 66
SquirrelGod 2:99b1cb0d9f5e 67 /* Function: attach_us
SquirrelGod 2:99b1cb0d9f5e 68 * Attach a function to be called by the Timeout, specifiying the delay in micro-seconds
SquirrelGod 2:99b1cb0d9f5e 69 *
SquirrelGod 2:99b1cb0d9f5e 70 * Variables:
SquirrelGod 2:99b1cb0d9f5e 71 * fptr - pointer to the function to be called
SquirrelGod 2:99b1cb0d9f5e 72 * t - the time before the call in micro-seconds
SquirrelGod 2:99b1cb0d9f5e 73 */
SquirrelGod 2:99b1cb0d9f5e 74 void attach_us(void (*fptr)(void), unsigned int t) {
SquirrelGod 2:99b1cb0d9f5e 75 _function.attach(fptr);
SquirrelGod 2:99b1cb0d9f5e 76 setup(t);
SquirrelGod 2:99b1cb0d9f5e 77 }
SquirrelGod 2:99b1cb0d9f5e 78
SquirrelGod 2:99b1cb0d9f5e 79 /* Function: attach_us
SquirrelGod 2:99b1cb0d9f5e 80 * Attach a member function to be called by the Timeout, specifiying the delay in micro-seconds
SquirrelGod 2:99b1cb0d9f5e 81 *
SquirrelGod 2:99b1cb0d9f5e 82 * Variables:
SquirrelGod 2:99b1cb0d9f5e 83 * tptr - pointer to the object to call the member function on
SquirrelGod 2:99b1cb0d9f5e 84 * mptr - pointer to the member function to be called
SquirrelGod 2:99b1cb0d9f5e 85 * t - the time before the call in micro-seconds
SquirrelGod 2:99b1cb0d9f5e 86 */
SquirrelGod 2:99b1cb0d9f5e 87 template<typename T>
SquirrelGod 2:99b1cb0d9f5e 88 void attach_us(T* tptr, void (T::*mptr)(void), unsigned int t) {
SquirrelGod 2:99b1cb0d9f5e 89 _function.attach(tptr, mptr);
SquirrelGod 2:99b1cb0d9f5e 90 setup(t);
SquirrelGod 2:99b1cb0d9f5e 91 }
SquirrelGod 2:99b1cb0d9f5e 92
SquirrelGod 2:99b1cb0d9f5e 93 /* Function: detach
SquirrelGod 2:99b1cb0d9f5e 94 * Detach the function
SquirrelGod 2:99b1cb0d9f5e 95 */
SquirrelGod 2:99b1cb0d9f5e 96 void detach();
SquirrelGod 2:99b1cb0d9f5e 97
SquirrelGod 2:99b1cb0d9f5e 98 #endif
SquirrelGod 2:99b1cb0d9f5e 99
SquirrelGod 2:99b1cb0d9f5e 100 protected:
SquirrelGod 2:99b1cb0d9f5e 101
SquirrelGod 2:99b1cb0d9f5e 102 virtual void handler();
SquirrelGod 2:99b1cb0d9f5e 103
SquirrelGod 2:99b1cb0d9f5e 104 };
SquirrelGod 2:99b1cb0d9f5e 105
SquirrelGod 2:99b1cb0d9f5e 106 } // namespace mbed
SquirrelGod 2:99b1cb0d9f5e 107
SquirrelGod 2:99b1cb0d9f5e 108 #endif