1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36
37
38 package ti.sysbios.timers.dmtimer;
39
40 /*!
41 * ======== TimestampProvider ========
42 *
43 * @p(html)
44 * <h3> Calling Context </h3>
45 * <table border="1" cellpadding="3">
46 * <colgroup span="1"></colgroup> <colgroup span="5" align="center"></colgroup>
47 *
48 * <tr><th> Function </th><th> Hwi </th><th> Swi </th><th> Task </th><th> Main** </th><th> Startup*** </th></tr>
49 * <!-- -->
50 * <tr><td> {@link #get32} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
51 * <tr><td> {@link #get64} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
52 * <tr><td> {@link #getFreq} </td><td> Y </td><td> Y </td><td> Y </td><td> Y </td><td> N </td></tr>
53 *
54 * </table>
55 * @p
56 */
57
58 @ModuleStartup
59
60 module TimestampProvider inherits ti.sysbios.interfaces.ITimestamp
61 {
62 /*!
63 * ======== timerId ========
64 * TimestampProvider timer id
65 *
66 * A value of {@link Timer#ANY Timer.ANY} (-1) indicates any timer is ok.
67 */
68 config UInt timerId = Timer.ANY;
69
70 /*!
71 *
72 * ======== useClockTimer ========
73 * Use the same timer as Clock
74 *
75 * Set this parameter when you want TimestampProvider to use the same
76 * timer as the BIOS {@link ti.sysbios.knl.Clock Clock} module.
77 *
78 * This parameter overrides the {@link #timerId timeId} setting.
79 */
80 config Bool useClockTimer;
81
82 /*!
83 * ======== startTimer ========
84 * Function that starts timer before main
85 *
86 * @_nodoc Internal use.
87 */
88 Void startTimer();
89
90 /*!
91 * ======== rolloverFunc ========
92 * Timer rollover interrupt handler
93 *
94 * @_nodoc Internal use.
95 */
96 Void rolloverFunc(UArg unused);
97
98 internal:
99
100 struct Module_State {
101 Timer.Handle timer;
102 volatile UInt32 rollovers;
103 }
104 }