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 import ti.catalog.msp430.peripherals.clock.IClock;
34
35 /*!
36 * ======== ITimer ========
37 * MSP430 ITimer interface
38 */
39 metaonly interface ITimer inherits xdc.platform.IPeripheral {
40
41 /*!
42 * ======== regIntVect_t ========
43 * Interrupt vector description
44 *
45 * Type to describe a single interrupt vector pin and all its possible
46 * configurations.
47 *
48 * @see #regIntVect_t
49 */
50 struct regIntVect_t {
51 String registerName;
52 String registerDescription;
53 String isrToggleString;
54 String priorityName;
55 Bool interruptEnable;
56 Bool interruptHandler;
57 Int priority;
58 }
59
60 /*!
61 * ======== ForceSetDefaultRegister_t ========
62 * Force Set Default Register
63 *
64 * Type to store if each register needs to be forced initialized
65 * even if the register is in default state.
66 *
67 * @see #ForceSetDefaultRegister_t
68 */
69 struct ForceSetDefaultRegister_t {
70 String register;
71 Bool regForceSet;
72 }
73
74 create(IClock.Instance clock);
75
76 instance:
77 /*!
78 * ======== baseAddr ========
79 * Address of the peripheral's control register.
80 *
81 * A peripheral's registers are commonly accessed through a structure
82 * that defines the offsets of a particular register from the lowest
83 * address mapped to a peripheral. That lowest address is specified by
84 * this parameter.
85 */
86 config UInt baseAddr;
87
88 /*!
89 * ======== intNum ========
90 * Interrupt source number
91 *
92 */
93 config UInt intNum;
94
95 /*!
96 * ======== numberOfTimers ========
97 * Stores the number of available timer capture compare blocks
98 *
99 */
100 config UChar numberOfTimers;
101
102 /*!
103 * ======== setTxxCCRx ========
104 * Sets TxxCCRx register value based on which CCR register
105 *
106 * @see #setTxxCCRx
107 */
108 void setTxxCCRx(UChar ccrNumber , Bits16 value);
109
110 /*!
111 * ======== getTxxCCRx ========
112 * Returns TxxCCRx register value based on which CCR register
113 *
114 * @see #getTxxCCRx
115 */
116 Bits16 getTxxCCRx(UChar ccrNumber);
117
118 /*!
119 * ======== isInternal ========
120 * Boolean that is true if a Timer is internal, meaning
121 * it has no external inputs or outputs
122 *
123 */
124 config Bool isInternal = false;
125
126 /*! @_nodoc */
127 config IClock.Instance clock;
128 }