]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_LM3S811_GCC/hw_include/hw_qei.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / CORTEX_LM3S811_GCC / hw_include / hw_qei.h
1 //*****************************************************************************\r
2 //\r
3 // hw_qei.h - Macros used when accessing the QEI hardware.\r
4 //\r
5 // Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.\r
6 //\r
7 // Software License Agreement\r
8 //\r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's Stellaris Family of microcontroller products.\r
11 //\r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  Any use in violation\r
14 // of the foregoing restrictions may subject the user to criminal sanctions\r
15 // under applicable laws, as well as to civil liability for the breach of the\r
16 // terms and conditions of this license.\r
17 //\r
18 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23 //\r
24 // This is part of revision 991 of the Stellaris Driver Library.\r
25 //\r
26 //*****************************************************************************\r
27 \r
28 #ifndef __HW_QEI_H__\r
29 #define __HW_QEI_H__\r
30 \r
31 //*****************************************************************************\r
32 //\r
33 // The following define the offsets of the QEI registers.\r
34 //\r
35 //*****************************************************************************\r
36 #define QEI_O_CTL               0x00000000  // Configuration and control reg.\r
37 #define QEI_O_STAT              0x00000004  // Status register\r
38 #define QEI_O_POS               0x00000008  // Current position register\r
39 #define QEI_O_MAXPOS            0x0000000C  // Maximum position register\r
40 #define QEI_O_LOAD              0x00000010  // Velocity timer load register\r
41 #define QEI_O_TIME              0x00000014  // Velocity timer register\r
42 #define QEI_O_COUNT             0x00000018  // Velocity pulse count register\r
43 #define QEI_O_SPEED             0x0000001C  // Velocity speed register\r
44 #define QEI_O_INTEN             0x00000020  // Interrupt enable register\r
45 #define QEI_O_RIS               0x00000024  // Raw interrupt status register\r
46 #define QEI_O_ISC               0x00000028  // Interrupt status register\r
47 \r
48 //*****************************************************************************\r
49 //\r
50 // The following define the bit fields in the QEI_CTL register.\r
51 //\r
52 //*****************************************************************************\r
53 #define QEI_CTL_STALLEN         0x00001000  // Stall enable\r
54 #define QEI_CTL_INVI            0x00000800  // Invert Index input\r
55 #define QEI_CTL_INVB            0x00000400  // Invert PhB input\r
56 #define QEI_CTL_INVA            0x00000200  // Invert PhA input\r
57 #define QEI_CTL_VELDIV_M        0x000001C0  // Velocity predivider mask\r
58 #define QEI_CTL_VELDIV_1        0x00000000  // Predivide by 1\r
59 #define QEI_CTL_VELDIV_2        0x00000040  // Predivide by 2\r
60 #define QEI_CTL_VELDIV_4        0x00000080  // Predivide by 4\r
61 #define QEI_CTL_VELDIV_8        0x000000C0  // Predivide by 8\r
62 #define QEI_CTL_VELDIV_16       0x00000100  // Predivide by 16\r
63 #define QEI_CTL_VELDIV_32       0x00000140  // Predivide by 32\r
64 #define QEI_CTL_VELDIV_64       0x00000180  // Predivide by 64\r
65 #define QEI_CTL_VELDIV_128      0x000001C0  // Predivide by 128\r
66 #define QEI_CTL_VELEN           0x00000020  // Velocity enable\r
67 #define QEI_CTL_RESMODE         0x00000010  // Position counter reset mode\r
68 #define QEI_CTL_CAPMODE         0x00000008  // Edge capture mode\r
69 #define QEI_CTL_SIGMODE         0x00000004  // Encoder signaling mode\r
70 #define QEI_CTL_SWAP            0x00000002  // Swap input signals\r
71 #define QEI_CTL_ENABLE          0x00000001  // QEI enable\r
72 \r
73 //*****************************************************************************\r
74 //\r
75 // The following define the bit fields in the QEI_STAT register.\r
76 //\r
77 //*****************************************************************************\r
78 #define QEI_STAT_DIRECTION      0x00000002  // Direction of rotation\r
79 #define QEI_STAT_ERROR          0x00000001  // Signalling error detected\r
80 \r
81 //*****************************************************************************\r
82 //\r
83 // The following define the bit fields in the QEI_POS register.\r
84 //\r
85 //*****************************************************************************\r
86 #define QEI_POS_M               0xFFFFFFFF  // Current encoder position\r
87 #define QEI_POS_S               0\r
88 \r
89 //*****************************************************************************\r
90 //\r
91 // The following define the bit fields in the QEI_MAXPOS register.\r
92 //\r
93 //*****************************************************************************\r
94 #define QEI_MAXPOS_M            0xFFFFFFFF  // Maximum encoder position\r
95 #define QEI_MAXPOS_S            0\r
96 \r
97 //*****************************************************************************\r
98 //\r
99 // The following define the bit fields in the QEI_LOAD register.\r
100 //\r
101 //*****************************************************************************\r
102 #define QEI_LOAD_M              0xFFFFFFFF  // Velocity timer load value\r
103 #define QEI_LOAD_S              0\r
104 \r
105 //*****************************************************************************\r
106 //\r
107 // The following define the bit fields in the QEI_TIME register.\r
108 //\r
109 //*****************************************************************************\r
110 #define QEI_TIME_M              0xFFFFFFFF  // Velocity timer current value\r
111 #define QEI_TIME_S              0\r
112 \r
113 //*****************************************************************************\r
114 //\r
115 // The following define the bit fields in the QEI_COUNT register.\r
116 //\r
117 //*****************************************************************************\r
118 #define QEI_COUNT_M             0xFFFFFFFF  // Encoder running pulse count\r
119 #define QEI_COUNT_S             0\r
120 \r
121 //*****************************************************************************\r
122 //\r
123 // The following define the bit fields in the QEI_SPEED register.\r
124 //\r
125 //*****************************************************************************\r
126 #define QEI_SPEED_M             0xFFFFFFFF  // Encoder pulse count\r
127 #define QEI_SPEED_S             0\r
128 \r
129 //*****************************************************************************\r
130 //\r
131 // The following define the bit fields in the QEI_INTEN register.\r
132 //\r
133 //*****************************************************************************\r
134 #define QEI_INTEN_ERROR         0x00000008  // Phase error detected\r
135 #define QEI_INTEN_DIR           0x00000004  // Direction change\r
136 #define QEI_INTEN_TIMER         0x00000002  // Velocity timer expired\r
137 #define QEI_INTEN_INDEX         0x00000001  // Index pulse detected\r
138 \r
139 //*****************************************************************************\r
140 //\r
141 // The following define the bit fields in the QEI_RIS register.\r
142 //\r
143 //*****************************************************************************\r
144 #define QEI_RIS_ERROR           0x00000008  // Phase error detected\r
145 #define QEI_RIS_DIR             0x00000004  // Direction change\r
146 #define QEI_RIS_TIMER           0x00000002  // Velocity timer expired\r
147 #define QEI_RIS_INDEX           0x00000001  // Index pulse detected\r
148 \r
149 //*****************************************************************************\r
150 //\r
151 // The following define the bit fields in the QEI_ISC register.\r
152 //\r
153 //*****************************************************************************\r
154 #define QEI_INT_ERROR           0x00000008  // Phase error detected\r
155 #define QEI_INT_DIR             0x00000004  // Direction change\r
156 #define QEI_INT_TIMER           0x00000002  // Velocity timer expired\r
157 #define QEI_INT_INDEX           0x00000001  // Index pulse detected\r
158 \r
159 //*****************************************************************************\r
160 //\r
161 // The following define the reset values for the QEI registers.\r
162 //\r
163 //*****************************************************************************\r
164 #define QEI_RV_CTL              0x00000000  // Configuration and control reg.\r
165 #define QEI_RV_STAT             0x00000000  // Status register\r
166 #define QEI_RV_POS              0x00000000  // Current position register\r
167 #define QEI_RV_MAXPOS           0x00000000  // Maximum position register\r
168 #define QEI_RV_LOAD             0x00000000  // Velocity timer load register\r
169 #define QEI_RV_TIME             0x00000000  // Velocity timer register\r
170 #define QEI_RV_COUNT            0x00000000  // Velocity pulse count register\r
171 #define QEI_RV_SPEED            0x00000000  // Velocity speed register\r
172 #define QEI_RV_INTEN            0x00000000  // Interrupt enable register\r
173 #define QEI_RV_RIS              0x00000000  // Raw interrupt status register\r
174 #define QEI_RV_ISC              0x00000000  // Interrupt status register\r
175 \r
176 #endif // __HW_QEI_H__\r