2020-2021 Sunseeker Telemetry and Lighting System
ctsd16.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // ctsd16.h - Driver for the CTSD16 Module.
4 //
5 //*****************************************************************************
6 
7 #ifndef __MSP430WARE_CTSD16_H__
8 #define __MSP430WARE_CTSD16_H__
9 
10 #include "inc/hw_memmap.h"
11 
12 #ifdef __MSP430_HAS_CTSD16__
13 
14 //*****************************************************************************
15 //
16 // If building with a C++ compiler, make all of the definitions in this header
17 // have a C binding.
18 //
19 //*****************************************************************************
20 #ifdef __cplusplus
21 extern "C"
22 {
23 #endif
24 
25 #include "inc/hw_memmap.h"
26 //*****************************************************************************
27 //
30 //
31 //*****************************************************************************
32 typedef struct CTSD16_initConverterAdvancedParam {
42  uint8_t converter;
48  uint16_t conversionMode;
52  uint8_t groupEnable;
74  uint8_t inputChannel;
79  uint8_t dataFormat;
84  uint16_t railToRailInput;
89  uint16_t interruptDelay;
96  uint16_t oversampleRatio;
104  uint8_t gain;
105 } CTSD16_initConverterAdvancedParam;
106 
107 
108 //*****************************************************************************
109 //
110 // The following are values that can be passed to the converter parameter for
111 // functions: CTSD16_setConverterDataFormat(),
112 // CTSD16_startConverterConversion(), CTSD16_stopConverterConversion(),
113 // CTSD16_setInputChannel(), CTSD16_setInterruptDelay(),
114 // CTSD16_setOversampling(), CTSD16_setGain(), CTSD16_setRailToRailInput(),
115 // CTSD16_getResults(), CTSD16_getHighWordResults(), CTSD16_enableInterrupt(),
116 // CTSD16_disableInterrupt(), CTSD16_clearInterrupt(),
117 // CTSD16_getInterruptStatus(), and CTSD16_initConverter(); the param parameter
118 // for functions: CTSD16_initConverterAdvanced().
119 //
120 //*****************************************************************************
121 #define CTSD16_CONVERTER_0 0
122 #define CTSD16_CONVERTER_1 1
123 #define CTSD16_CONVERTER_2 2
124 #define CTSD16_CONVERTER_3 3
125 #define CTSD16_CONVERTER_4 4
126 #define CTSD16_CONVERTER_5 5
127 #define CTSD16_CONVERTER_6 6
128 
129 //*****************************************************************************
130 //
131 // The following are values that can be passed to the oversampleRatio parameter
132 // for functions: CTSD16_setOversampling(); the param parameter for functions:
133 // CTSD16_initConverterAdvanced().
134 //
135 //*****************************************************************************
136 #define CTSD16_OVERSAMPLE_32 (CTSD16OSR__32)
137 #define CTSD16_OVERSAMPLE_64 (CTSD16OSR__64)
138 #define CTSD16_OVERSAMPLE_128 (CTSD16OSR__128)
139 #define CTSD16_OVERSAMPLE_256 (CTSD16OSR__256)
140 
141 //*****************************************************************************
142 //
143 // The following are values that can be passed to the inputChannel parameter
144 // for functions: CTSD16_initConverter(), and CTSD16_setInputChannel(); the
145 // param parameter for functions: CTSD16_initConverterAdvanced().
146 //
147 //*****************************************************************************
148 #define CTSD16_INPUT_CH0 (CTSD16INCH_0)
149 #define CTSD16_INPUT_CH1 (CTSD16INCH_1)
150 #define CTSD16_INPUT_CH2 (CTSD16INCH_2)
151 #define CTSD16_INPUT_CH3 (CTSD16INCH_3)
152 #define CTSD16_INPUT_CH4 (CTSD16INCH_4)
153 #define CTSD16_INPUT_CH5 (CTSD16INCH_5)
154 #define CTSD16_INPUT_CH6 (CTSD16INCH_6)
155 #define CTSD16_INPUT_CH7 (CTSD16INCH_7)
156 #define CTSD16_INPUT_CH8 (CTSD16INCH_8)
157 #define CTSD16_INPUT_CH9 (CTSD16INCH_9)
158 #define CTSD16_INPUT_CH10 (CTSD16INCH_10)
159 #define CTSD16_INPUT_CH11 (CTSD16INCH_11)
160 #define CTSD16_INPUT_CH12 (CTSD16INCH_12)
161 #define CTSD16_INPUT_CH13 (CTSD16INCH_13)
162 #define CTSD16_INPUT_CH14 (CTSD16INCH_14)
163 #define CTSD16_INPUT_CH15 (CTSD16INCH_15)
164 #define CTSD16_INPUT_CH16 (CTSD16INCH_16)
165 #define CTSD16_INPUT_CH17 (CTSD16INCH_17)
166 #define CTSD16_INPUT_CH18 (CTSD16INCH_18)
167 
168 //*****************************************************************************
169 //
170 // The following are values that can be passed to the dataFormat parameter for
171 // functions: CTSD16_setConverterDataFormat(); the param parameter for
172 // functions: CTSD16_initConverterAdvanced().
173 //
174 //*****************************************************************************
175 #define CTSD16_DATA_FORMAT_BINARY (0x00)
176 #define CTSD16_DATA_FORMAT_2COMPLEMENT (CTSD16DF)
177 
178 //*****************************************************************************
179 //
180 // The following are values that can be passed to the gain parameter for
181 // functions: CTSD16_setGain(); the param parameter for functions:
182 // CTSD16_initConverterAdvanced().
183 //
184 //*****************************************************************************
185 #define CTSD16_GAIN_1 (CTSD16GAIN_1)
186 #define CTSD16_GAIN_2 (CTSD16GAIN_2)
187 #define CTSD16_GAIN_4 (CTSD16GAIN_4)
188 #define CTSD16_GAIN_8 (CTSD16GAIN_8)
189 #define CTSD16_GAIN_16 (CTSD16GAIN_16)
190 
191 //*****************************************************************************
192 //
193 // The following are values that can be passed to the interruptDelay parameter
194 // for functions: CTSD16_setInterruptDelay(); the param parameter for
195 // functions: CTSD16_initConverterAdvanced().
196 //
197 //*****************************************************************************
198 #define CTSD16_FIRST_SAMPLE_INTERRUPT (CTSD16INTDLY)
199 #define CTSD16_FOURTH_SAMPLE_INTERRUPT (0x00)
200 
201 //*****************************************************************************
202 //
203 // The following are values that can be passed to the param parameter for
204 // functions: CTSD16_initConverterAdvanced().
205 //
206 //*****************************************************************************
207 #define CTSD16_NOT_GROUPED (0x00)
208 #define CTSD16_GROUPED (CTSD16GRP)
209 
210 //*****************************************************************************
211 //
212 // The following are values that can be passed to the mask parameter for
213 // functions: CTSD16_enableInterrupt(), CTSD16_disableInterrupt(),
214 // CTSD16_clearInterrupt(), and CTSD16_getInterruptStatus() as well as returned
215 // by the CTSD16_getInterruptStatus() function.
216 //
217 //*****************************************************************************
218 #define CTSD16_CONVERTER_INTERRUPT (CTSD16IE0)
219 #define CTSD16_CONVERTER_OVERFLOW_INTERRUPT (CTSD16OVIE0)
220 
221 //*****************************************************************************
222 //
223 // The following are values that can be passed to the chargePumpBurstRequest
224 // parameter for functions: CTSD16_init().
225 //
226 //*****************************************************************************
227 #define CTSD16_RTR_INPUT_CHARGEPUMP_BURST_REQUEST_ENABLE (CTSD16RRIBURST)
228 #define CTSD16_RTR_INPUT_CHARGEPUMP_BURST_REQUEST_DISABLE (0x0)
229 
230 //*****************************************************************************
231 //
232 // The following are values that can be passed to the referenceSelect parameter
233 // for functions: CTSD16_init().
234 //
235 //*****************************************************************************
236 #define CTSD16_REF_EXTERNAL (0x0)
237 #define CTSD16_REF_INTERNAL (CTSD16REFS)
238 
239 //*****************************************************************************
240 //
241 // The following are values that can be passed to the param parameter for
242 // functions: CTSD16_initConverterAdvanced(); the conversionMode parameter for
243 // functions: CTSD16_initConverter().
244 //
245 //*****************************************************************************
246 #define CTSD16_CONTINUOUS_MODE (0x0)
247 #define CTSD16_SINGLE_MODE (CTSD16SNGL)
248 
249 //*****************************************************************************
250 //
251 // The following are values that can be passed to the railToRailInput parameter
252 // for functions: CTSD16_setRailToRailInput(); the param parameter for
253 // functions: CTSD16_initConverterAdvanced().
254 //
255 //*****************************************************************************
256 #define CTSD16_RTR_INPUT_ENABLE (CTSD16RRI)
257 #define CTSD16_RTR_INPUT_DISABLE (0x0)
258 
259 //*****************************************************************************
260 //
261 // The following are values that can be passed toThe following are values that
262 // can be returned by the CTSD16_isRailToRailInputReady() function.
263 //
264 //*****************************************************************************
265 #define CTSD16_RTR_INPUT_READY (CTSD16RRIRDY)
266 #define CTSD16_RTR_INPUT_NOT_READY (0x0)
267 
268 //*****************************************************************************
269 //
270 // Prototypes for the APIs.
271 //
272 //*****************************************************************************
273 
274 //*****************************************************************************
275 //
299 //
300 //*****************************************************************************
301 extern void CTSD16_init(uint16_t baseAddress,
302  uint16_t chargePumpBurstRequest,
303  uint8_t referenceSelect);
304 
305 //*****************************************************************************
306 //
354 //
355 //*****************************************************************************
356 extern void CTSD16_initConverter(uint16_t baseAddress,
357  uint8_t converter,
358  uint16_t conversionMode,
359  uint8_t inputChannel);
360 
361 //*****************************************************************************
362 //
373 //
374 //*****************************************************************************
375 extern void CTSD16_initConverterAdvanced(uint16_t baseAddress,
376  CTSD16_initConverterAdvancedParam *param);
377 
378 //*****************************************************************************
379 //
397 //
398 //*****************************************************************************
399 extern void CTSD16_startConverterConversion(uint16_t baseAddress,
400  uint8_t converter);
401 
402 //*****************************************************************************
403 //
421 //
422 //*****************************************************************************
423 extern void CTSD16_stopConverterConversion(uint16_t baseAddress,
424  uint8_t converter);
425 
426 //*****************************************************************************
427 //
451 //
452 //*****************************************************************************
453 extern void CTSD16_setConverterDataFormat(uint16_t baseAddress,
454  uint8_t converter,
455  uint8_t dataFormat);
456 
457 //*****************************************************************************
458 //
498 //
499 //*****************************************************************************
500 extern void CTSD16_setInputChannel(uint16_t baseAddress,
501  uint8_t converter,
502  uint8_t inputChannel);
503 
504 //*****************************************************************************
505 //
527 //
528 //*****************************************************************************
529 extern void CTSD16_setRailToRailInput(uint16_t baseAddress,
530  uint8_t converter,
531  uint16_t railToRailInput);
532 
533 //*****************************************************************************
534 //
559 //
560 //*****************************************************************************
561 extern void CTSD16_setInterruptDelay(uint16_t baseAddress,
562  uint8_t converter,
563  uint16_t interruptDelay);
564 
565 //*****************************************************************************
566 //
590 //
591 //*****************************************************************************
592 extern void CTSD16_setOversampling(uint16_t baseAddress,
593  uint8_t converter,
594  uint16_t oversampleRatio);
595 
596 //*****************************************************************************
597 //
622 //
623 //*****************************************************************************
624 extern void CTSD16_setGain(uint16_t baseAddress,
625  uint8_t converter,
626  uint8_t gain);
627 
628 //*****************************************************************************
629 //
648 //
649 //*****************************************************************************
650 extern uint32_t CTSD16_getResults(uint16_t baseAddress,
651  uint8_t converter);
652 
653 //*****************************************************************************
654 //
672 //
673 //*****************************************************************************
674 extern uint16_t CTSD16_getHighWordResults(uint16_t baseAddress,
675  uint8_t converter);
676 
677 //*****************************************************************************
678 //
690 //
691 //*****************************************************************************
692 extern uint16_t CTSD16_isRailToRailInputReady(uint16_t baseAddress);
693 
694 //*****************************************************************************
695 //
719 //
720 //*****************************************************************************
721 extern void CTSD16_enableInterrupt(uint16_t baseAddress,
722  uint8_t converter,
723  uint16_t mask);
724 
725 //*****************************************************************************
726 //
751 //
752 //*****************************************************************************
753 extern void CTSD16_disableInterrupt(uint16_t baseAddress,
754  uint8_t converter,
755  uint16_t mask);
756 
757 //*****************************************************************************
758 //
780 //
781 //*****************************************************************************
782 extern void CTSD16_clearInterrupt(uint16_t baseAddress,
783  uint8_t converter,
784  uint16_t mask);
785 
786 //*****************************************************************************
787 //
811 //
812 //*****************************************************************************
813 extern uint16_t CTSD16_getInterruptStatus(uint16_t baseAddress,
814  uint8_t converter,
815  uint16_t mask);
816 
817 //*****************************************************************************
818 //
819 // Mark the end of the C bindings section for C++ compilers.
820 //
821 //*****************************************************************************
822 #ifdef __cplusplus
823 }
824 #endif
825 
826 #endif
827 #endif // __MSP430WARE_CTSD16_H__
MPU_initThreeSegmentsParam param