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.
Fork of mbed by
TimerEvent.h@43:e2ed12d17f06, 2012-10-26 (annotated)
- Committer:
- emilmont
- Date:
- Fri Oct 26 17:40:46 2012 +0100
- Revision:
- 43:e2ed12d17f06
- Parent:
- 27:7110ebee3484
- Child:
- 44:24d45a770a51
Update documentation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rolf.meyer@arm.com | 11:1c1ebd0324fa | 1 | /* mbed Microcontroller Library - TimerEvent |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 2 | * Copyright (c) 2007-2009 ARM Limited. All rights reserved. |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 3 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 4 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 5 | #ifndef MBED_TIMEREVENT_H |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 6 | #define MBED_TIMEREVENT_H |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 7 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 8 | namespace mbed { |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 9 | |
emilmont | 43:e2ed12d17f06 | 10 | /** Base abstraction for timer interrupts |
emilmont | 43:e2ed12d17f06 | 11 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 12 | class TimerEvent { |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 13 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 14 | public: |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 15 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 16 | TimerEvent(); |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 17 | |
emilmont | 43:e2ed12d17f06 | 18 | /** The handler registered with the underlying timer interrupt |
emilmont | 43:e2ed12d17f06 | 19 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 20 | static void irq(); |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 21 | |
emilmont | 43:e2ed12d17f06 | 22 | /** Destruction removes it... |
emilmont | 43:e2ed12d17f06 | 23 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 24 | virtual ~TimerEvent(); |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 25 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 26 | protected: |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 27 | |
emilmont | 43:e2ed12d17f06 | 28 | /** The handler called to service the timer event of the derived class |
emilmont | 43:e2ed12d17f06 | 29 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 30 | virtual void handler() = 0; |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 31 | |
emilmont | 43:e2ed12d17f06 | 32 | /** Insert in to linked list |
emilmont | 43:e2ed12d17f06 | 33 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 34 | void insert(unsigned int timestamp); |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 35 | |
emilmont | 43:e2ed12d17f06 | 36 | /** Remove from linked list, if in it |
emilmont | 43:e2ed12d17f06 | 37 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 38 | void remove(); |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 39 | |
emilmont | 43:e2ed12d17f06 | 40 | /** Get the current usec timestamp |
emilmont | 43:e2ed12d17f06 | 41 | */ |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 42 | static unsigned int timestamp(); |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 43 | |
emilmont | 43:e2ed12d17f06 | 44 | /** The head of the list of the events, NULL if none |
emilmont | 43:e2ed12d17f06 | 45 | */ |
emilmont | 43:e2ed12d17f06 | 46 | static TimerEvent *_head; |
emilmont | 43:e2ed12d17f06 | 47 | |
emilmont | 43:e2ed12d17f06 | 48 | /** Pointer to the next in the list, NULL if last |
emilmont | 43:e2ed12d17f06 | 49 | */ |
emilmont | 43:e2ed12d17f06 | 50 | TimerEvent *_next; |
emilmont | 43:e2ed12d17f06 | 51 | |
emilmont | 43:e2ed12d17f06 | 52 | /** The timestamp at which the even should be triggered |
emilmont | 43:e2ed12d17f06 | 53 | */ |
emilmont | 43:e2ed12d17f06 | 54 | unsigned int _timestamp; |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 55 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 56 | }; |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 57 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 58 | } // namespace mbed |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 59 | |
rolf.meyer@arm.com | 11:1c1ebd0324fa | 60 | #endif |