...

Dependents:   2doejemplo Labo_TRSE_Drone

Fork of mbed by mbed official

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?

UserRevisionLine numberNew 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