Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: NervousPuppySprintOne NervousPuppySprint2602 Robot WarehouseBot1 ... more
Fork of mbed by
Timeout.h
- Committer:
- simon.ford@mbed.co.uk
- Date:
- 2008-11-14
- Revision:
- 3:aefd12a1f1c5
- Child:
- 4:5d1359a283bc
File content as of revision 3:aefd12a1f1c5:
/* mbed Microcontroller Library - Timeout
* Copyright (c) 2007-2008, sford
*/
#ifndef MBED_TIMEOUT_H
#define MBED_TIMEOUT_H
#include "Ticker.h"
namespace mbed {
/* Class: Timeout
* A Timeout is used to call a function at a point in the future
*
* You can use as many seperate Timeout objects as you require.
*/
class Timeout : public Ticker {
#if 0 // For documentation
/* Function: attach
* Attach a function to be called by the Timeout, specifiying the delay in seconds
*
* Variables:
* fptr - pointer to the function to be called
* t - the time before the call in seconds
*/
void attach(void (*fptr)(void), float t) {
attach_us(fptr, t * 1000000.0f);
}
/* Function: attach
* Attach a member function to be called by the Timeout, specifiying the delay in seconds
*
* Variables:
* tptr - pointer to the object to call the member function on
* mptr - pointer to the member function to be called
* t - the time before the calls in seconds
*/
template<typename T>
void attach(T* tptr, void (T::*mptr)(void), float t) {
attach_us(tptr, mptr, t * 1000000.0f);
}
/* Function: attach_us
* Attach a function to be called by the Timeout, specifiying the delay in micro-seconds
*
* Variables:
* fptr - pointer to the function to be called
* t - the time before the call in micro-seconds
*/
void attach_us(void (*fptr)(void), unsigned int t) {
_function.attach(fptr);
setup(t);
}
/* Function: attach_us
* Attach a member function to be called by the Timeout, specifiying the delay in micro-seconds
*
* Variables:
* tptr - pointer to the object to call the member function on
* mptr - pointer to the member function to be called
* t - the time before the call in micro-seconds
*/
template<typename T>
void attach_us(T* tptr, void (T::*mptr)(void), unsigned int t) {
_function.attach(tptr, mptr);
setup(t);
}
/* Function: detach
* Detach the function
*/
void detach();
#endif
protected:
virtual void handler();
};
}
#endif
