1 /* --COPYRIGHT--,BSD
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * *  Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  *
12  * *  Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * *  Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * --/COPYRIGHT--*/
32 #ifndef __SYSCTL_A_H__
33 #define __SYSCTL_A_H__
34 
35 #include <stdint.h>
36 #include <stdbool.h>
37 #include <ti/devices/msp432p4xx/inc/msp.h>
38 
39 /* Define to ensure that our current MSP432 has the SYSCTL_A module. This
40     definition is included in the device specific header file */
41 #ifdef __MCU_HAS_SYSCTL_A__
42 
43 //*****************************************************************************
44 //
45 //! \addtogroup sysctl_a_api
46 //! @{
47 //
48 //*****************************************************************************
49 
50 //*****************************************************************************
51 //
52 // If building with a C++ compiler, make all of the definitions in this header
53 // have a C binding.
54 //
55 //*****************************************************************************
56 #ifdef __cplusplus
57 extern "C"
58 {
59 #endif
60 
61 //*****************************************************************************
62 //
63 // Control specific variables
64 //
65 //*****************************************************************************
66 #define SYSCTL_A_HARD_RESET 1
67 #define SYSCTL_A_SOFT_RESET 0
68 
69 #define SYSCTL_A_PERIPH_LCD SYSCTL_A_PERIHALT_CTL_HALT_LCD
70 #define SYSCTL_A_PERIPH_DMA SYSCTL_A_PERIHALT_CTL_HALT_DMA
71 #define SYSCTL_A_PERIPH_WDT SYSCTL_A_PERIHALT_CTL_HALT_WDT
72 #define SYSCTL_A_PERIPH_ADC SYSCTL_A_PERIHALT_CTL_HALT_ADC
73 #define SYSCTL_A_PERIPH_EUSCIB3 SYSCTL_A_PERIHALT_CTL_HALT_EUB3
74 #define SYSCTL_A_PERIPH_EUSCIB2 SYSCTL_A_PERIHALT_CTL_HALT_EUB2
75 #define SYSCTL_A_PERIPH_EUSCIB1 SYSCTL_A_PERIHALT_CTL_HALT_EUB1
76 #define SYSCTL_A_PERIPH_EUSCIB0 SYSCTL_A_PERIHALT_CTL_HALT_EUB0
77 #define SYSCTL_A_PERIPH_EUSCIA3 SYSCTL_A_PERIHALT_CTL_HALT_EUA3
78 #define SYSCTL_A_PERIPH_EUSCIA2 SYSCTL_A_PERIHALT_CTL_HALT_EUA2
79 #define SYSCTL_A_PERIPH_EUSCIA1 SYSCTL_A_PERIHALT_CTL_HALT_EUA1
80 #define SYSCTL_A_PERIPH_EUSCIA0 SYSCTL_A_PERIHALT_CTL_HALT_EUA0
81 #define SYSCTL_A_PERIPH_TIMER32_0_MODULE SYSCTL_A_PERIHALT_CTL_HALT_T32_0
82 #define SYSCTL_A_PERIPH_TIMER16_3 SYSCTL_A_PERIHALT_CTL_HALT_T16_3
83 #define SYSCTL_A_PERIPH_TIMER16_2 SYSCTL_A_PERIHALT_CTL_HALT_T16_2
84 #define SYSCTL_A_PERIPH_TIMER16_1 SYSCTL_A_PERIHALT_CTL_HALT_T16_1
85 #define SYSCTL_A_PERIPH_TIMER16_0 SYSCTL_A_PERIHALT_CTL_HALT_T16_0
86 
87 #define SYSCTL_A_NMIPIN_SRC SYSCTL_A_NMI_CTLSTAT_PIN_SRC
88 #define SYSCTL_A_PCM_SRC SYSCTL_A_NMI_CTLSTAT_PCM_SRC
89 #define SYSCTL_A_PSS_SRC SYSCTL_A_NMI_CTLSTAT_PSS_SRC
90 #define SYSCTL_A_CS_SRC SYSCTL_A_NMI_CTLSTAT_CS_SRC
91 
92 #define SYSCTL_A_REBOOT_KEY   0x6900
93 
94 #define SYSCTL_A_1_2V_REF        (uint32_t)&TLV->ADC14_REF1P2V_TS30C - (uint32_t)TLV_BASE
95 #define SYSCTL_A_1_45V_REF       (uint32_t)&TLV->ADC14_REF1P45V_TS30C - (uint32_t)TLV_BASE
96 #define SYSCTL_A_2_5V_REF        (uint32_t)&TLV->ADC14_REF2P5V_TS30C - (uint32_t)TLV_BASE
97 
98 #define SYSCTL_A_85_DEGREES_C    4
99 #define SYSCTL_A_30_DEGREES_C    0
100 
101 #define SYSCTL_A_BANKMASK       0x80000000
102 #define SRAMCTL_CTL0_BANK       0x10000000
103 #define SRAMCTL_CTL1_BANK       0x20000000
104 #define SRAMCTL_CTL2_BANK       0x30000000
105 #define SRAMCTL_CTL3_BANK       0x40000000
106 
107 
108 #define TLV_START               0x00201004
109 #define TLV_TAG_RESERVED1      1
110 #define TLV_TAG_RESERVED2      2
111 #define TLV_TAG_CS             3
112 #define TLV_TAG_FLASHCTL       4
113 #define TLV_TAG_ADC14          5
114 #define TLV_TAG_RESERVED6      6
115 #define TLV_TAG_RESERVED7      7
116 #define TLV_TAG_REF            8
117 #define TLV_TAG_RESERVED9      9
118 #define TLV_TAG_RESERVED10     10
119 #define TLV_TAG_DEVINFO        11
120 #define TLV_TAG_DIEREC         12
121 #define TLV_TAG_RANDNUM        13
122 #define TLV_TAG_RESERVED14     14
123 #define TLV_TAG_BSL            15
124 #define TLV_TAGEND             0x0BD0E11D
125 
126 //*****************************************************************************
127 //
128 // Structures for TLV definitions
129 //
130 //*****************************************************************************
131 typedef struct
132 {
133     uint32_t    maxProgramPulses;
134     uint32_t    maxErasePulses;
135 } SysCtl_A_FlashTLV_Info;
136 
137 typedef struct
138 {
139     uint32_t rDCOIR_FCAL_RSEL04;
140     uint32_t rDCOIR_FCAL_RSEL5;
141     uint32_t rDCOIR_MAXPOSTUNE_RSEL04;
142     uint32_t rDCOIR_MAXNEGTUNE_RSEL04;
143     uint32_t rDCOIR_MAXPOSTUNE_RSEL5;
144     uint32_t rDCOIR_MAXNEGTUNE_RSEL5;
145     uint32_t rDCOIR_CONSTK_RSEL04;
146     uint32_t rDCOIR_CONSTK_RSEL5;
147     uint32_t rDCOER_FCAL_RSEL04;
148     uint32_t rDCOER_FCAL_RSEL5;
149     uint32_t rDCOER_MAXPOSTUNE_RSEL04;
150     uint32_t rDCOER_MAXNEGTUNE_RSEL04;
151     uint32_t rDCOER_MAXPOSTUNE_RSEL5;
152     uint32_t rDCOER_MAXNEGTUNE_RSEL5;
153     uint32_t rDCOER_CONSTK_RSEL04;
154     uint32_t rDCOER_CONSTK_RSEL5;
155 
156 } SysCtl_A_CSCalTLV_Info;
157 
158 //*****************************************************************************
159 //
160 // Prototypes for the APIs.
161 //
162 //*****************************************************************************
163 
164 //*****************************************************************************
165 //
166 //! Gets the size of the SRAM.
167 //!
168 //! \return The total number of bytes of SRAM.
169 //
170 //*****************************************************************************
171 extern uint_least32_t SysCtl_A_getSRAMSize(void);
172 
173 //*****************************************************************************
174 //
175 //! Gets the size of the flash.
176 //!
177 //! \return The total number of bytes of main flash memory.
178 //!
179 //! \note This returns the total amount of main memory flash. To find how much
180 //!        INFO memory is available, use the \link SysCtl_A_getInfoFlashSize
181 //!         \endlink function.
182 //
183 //*****************************************************************************
184 extern uint_least32_t SysCtl_A_getFlashSize(void);
185 
186 //*****************************************************************************
187 //
188 //! Gets the size of the flash.
189 //!
190 //! \return The total number of bytes of flash of INFO flash memory.
191 //!
192 //! \note This returns the total amount of INFO memory flash. To find how much
193 //!        main  memory is available, use the \link SysCtl_A_getFlashSize
194 //!         \endlink function.
195 //
196 //*****************************************************************************
197 extern uint_least32_t SysCtl_A_getInfoFlashSize(void);
198 
199 //*****************************************************************************
200 //
201 //! Reboots the device and causes the device to re-initialize itself.
202 //!
203 //! \return This function does not return.
204 //
205 //*****************************************************************************
206 extern void SysCtl_A_rebootDevice(void);
207 
208 //*****************************************************************************
209 //
210 //! The TLV structure uses a tag or base address to identify segments of the
211 //! table where information is stored. Some examples of TLV tags are Peripheral
212 //! Descriptor, Interrupts, Info Block and Die Record. This function retrieves
213 //! the value of a tag and the length of the tag.
214 //!
215 //! \param tag represents the tag for which the information needs to be
216 //!        retrieved.
217 //!        Valid values are:
218 //!        - \b TLV_TAG_RESERVED1
219 //!        - \b TLV_TAG_RESERVED2
220 //!        - \b TLV_TAG_CS
221 //!        - \b TLV_TAG_FLASHCTL
222 //!        - \b TLV_TAG_ADC14
223 //!        - \b TLV_TAG_RESERVED6
224 //!        - \b TLV_TAG_RESERVED7
225 //!        - \b TLV_TAG_REF
226 //!        - \b TLV_TAG_RESERVED9
227 //!        - \b TLV_TAG_RESERVED10
228 //!        - \b TLV_TAG_DEVINFO
229 //!        - \b TLV_TAG_DIEREC
230 //!        - \b TLV_TAG_RANDNUM
231 //!        - \b TLV_TAG_RESERVED14
232 //! \param instance In some cases a specific tag may have more than one
233 //!        instance. For example there may be multiple instances of timer
234 //!        calibration data present under a single Timer Cal tag. This variable
235 //!        specifies the instance for which information is to be retrieved (0,
236 //!        1, etc.). When only one instance exists; 0 is passed.
237 //! \param length Acts as a return through indirect reference. The function
238 //!        retrieves the value of the TLV tag length. This value is pointed to
239 //!        by *length and can be used by the application level once the
240 //!        function is called. If the specified tag is not found then the
241 //!        pointer is null 0.
242 //! \param data_address acts as a return through indirect reference. Once the
243 //!        function is called data_address points to the pointer that holds the
244 //!        value retrieved from the specified TLV tag. If the specified tag is
245 //!        not found then the pointer is null 0.
246 //!
247 //! \return None
248 //
249 //*****************************************************************************
250 extern void SysCtl_A_getTLVInfo(uint_fast8_t tag, uint_fast8_t instance,
251         uint_fast8_t *length, uint32_t **data_address);
252 
253 //*****************************************************************************
254 //
255 //! Enables areas of SRAM memory. This can be used to optimize power
256 //! consumption when every SRAM bank isn't needed.
257 //! This function takes in a 32-bit address to the area in SRAM to to enable.
258 //! It will convert this address into the corresponding register settings and
259 //! set them in the register accordingly. Note that passing an address to an
260 //! area other than SRAM will result in unreliable behavior. Addresses should
261 //! be given with reference to the SRAM_DATA area of SRAM (usually starting at
262 //! 0x20000000).
263 //!
264 //! \param addr Break address of SRAM to enable. All SRAM below this address
265 //!     will also be enabled. If an unaligned address is given the appropriate
266 //!     aligned address will be calculated.
267 //!
268 //! \note The first bank of SRAM is reserved and always enabled.
269 //!
270 //! \return true if banks were set, false otherwise. If the BNKEN_RDY bit is
271 //!               not set in the STAT register, this function will return false.
272 //
273 //*****************************************************************************
274 extern bool SysCtl_A_enableSRAM(uint32_t addr);
275 
276 //*****************************************************************************
277 //
278 //! Disables areas of SRAM memory. This can be used to optimize power
279 //! consumption when every SRAM bank isn't needed. It is important to note
280 //! that when a  higher bank is disabled, all of the SRAM banks above that bank
281 //! are also disabled. For example, if the address of 0x2001FA0 is given, all
282 //! SRAM banks from 0x2001FA0 to the top of SRAM will be disabled.
283 //! This function takes in a 32-bit address to the area in SRAM to to disable.
284 //! It will convert this address into the corresponding register settings and
285 //! set them in the register accordingly. Note that passing an address to an
286 //! area other than SRAM will result in unreliable behavior. Addresses should
287 //! be given with reference to the SRAM_DATA area of SRAM (usually starting at
288 //! 0x20000000).
289 //!
290 //! \param addr Break address of SRAM to disable. All SRAM above this address
291 //!     will also be disabled. If an unaligned address is given the appropriate
292 //!     aligned address will be calculated.
293 //!
294 //! \note The first bank of SRAM is reserved and always enabled.
295 //!
296 //! \return true if banks were set, false otherwise. If the BNKEN_RDY bit is
297 //!               not set in the STAT register, this function will return false.
298 //
299 //*****************************************************************************
300 extern bool SysCtl_A_disableSRAM(uint32_t addr);
301 
302 //*****************************************************************************
303 //
304 //! Enables retention of the specified SRAM block address range when the device
305 //! goes into LPM3 mode. When the system is placed in LPM3 mode, the SRAM
306 //! banks specified with this function will be placed into retention mode.
307 //! Retention of individual blocks can be set without the restrictions of the
308 //! enable/disable functions. Note that any memory range given outside of SRAM
309 //! will result in unreliable behavior. Also note that any unaligned addresses
310 //! will be truncated to the closest aligned address before the address given.
311 //! Addresses should be given with reference to the SRAM_DATA area of SRAM
312 //! (usually starting at 0x20000000).
313 //!
314 //! \param startAddr Start address to enable retention
315 //!
316 //! \param endtAddr End address to enable retention
317 //!
318 //! \note  Block 0 is reserved and retention is always enabled.
319 //!
320 //! \return true if banks were set, false otherwise. If the BLKEN_RDY bit is
321 //!               not set in the STAT register, this function will return false.
322 //
323 //*****************************************************************************
324 extern bool SysCtl_A_enableSRAMRetention(uint32_t startAddr,
325         uint32_t endAddr);
326 
327 //*****************************************************************************
328 //
329 //! Disables retention of the specified SRAM block address range when the device
330 //! goes into LPM3 mode. When the system is placed in LPM3 mode, the SRAM
331 //! banks specified with this function will be placed into retention mode.
332 //! Retention of individual blocks can be set without the restrictions of the
333 //! enable/disable functions. Note that any memory range given outside of SRAM
334 //! will result in unreliable behavior. Also note that any unaligned addresses
335 //! will be truncated to the closest aligned address before the address given.
336 //! Addresses should be given with reference to the SRAM_DATA area of SRAM
337 //! (usually starting at 0x20000000).
338 //!
339 //! \param startAddr Start address to disable retention
340 //!
341 //! \param endtAddr End address to disable retention
342 //!
343 //! \note  Block 0 is reserved and retention is always enabled.
344 //!
345 //! \return true if banks were set, false otherwise. If the BLKEN_RDY bit is
346 //!               not set in the STAT register, this function will return false.
347 //
348 //*****************************************************************************
349 extern bool SysCtl_A_disableSRAMRetention(uint32_t startAddr,
350         uint32_t endAddr);
351 
352 //*****************************************************************************
353 //
354 //! Makes it so that the provided peripherals will either halt execution after
355 //! a CPU HALT. Parameters in this function can be combined to account for
356 //! multiple peripherals. By default, all peripherals keep running after a
357 //! CPU HALT.
358 //!
359 //! \param devices The peripherals to continue running after a CPU HALT
360 //!         This can be a bitwise OR of the following values:
361 //!                 - \b SYSCTL_A_PERIPH_LCD,
362 //!                 - \b SYSCTL_A_PERIPH_DMA,
363 //!                 - \b SYSCTL_A_PERIPH_WDT,
364 //!                 - \b SYSCTL_A_PERIPH_ADC,
365 //!                 - \b SYSCTL_A_PERIPH_EUSCIB3,
366 //!                 - \b SYSCTL_A_PERIPH_EUSCIB2,
367 //!                 - \b SYSCTL_A_PERIPH_EUSCIB1
368 //!                 - \b SYSCTL_A_PERIPH_EUSCIB0,
369 //!                 - \b SYSCTL_A_PERIPH_EUSCIA3,
370 //!                 - \b SYSCTL_A_PERIPH_EUSCIA2
371 //!                 - \b SYSCTL_A_PERIPH_EUSCIA1,
372 //!                 - \b SYSCTL_A_PERIPH_EUSCIA0,
373 //!                 - \b SYSCTL_A_PERIPH_TIMER32_0_MODULE,
374 //!                 - \b SYSCTL_A_PERIPH_TIMER16_3,
375 //!                 - \b SYSCTL_A_PERIPH_TIMER16_2,
376 //!                 - \b SYSCTL_A_PERIPH_TIMER16_1,
377 //!                 - \b SYSCTL_A_PERIPH_TIMER16_0
378 //!
379 //! \return None.
380 //
381 //
382 //*****************************************************************************
383 extern void SysCtl_A_enablePeripheralAtCPUHalt(uint_fast16_t devices);
384 
385 //*****************************************************************************
386 //
387 //! Makes it so that the provided peripherals will either halt execution after
388 //! a CPU HALT. Parameters in this function can be combined to account for
389 //! multiple peripherals. By default, all peripherals keep running after a
390 //! CPU HALT.
391 //!
392 //! \param devices The peripherals to disable after a CPU HALT
393 //!
394 //! The \e devices parameter can be a bitwise OR of the following values:
395 //!         This can be a bitwise OR of the following values:
396 //!                 - \b SYSCTL_A_PERIPH_LCD,
397 //!                 - \b SYSCTL_A_PERIPH_DMA,
398 //!                 - \b SYSCTL_A_PERIPH_WDT,
399 //!                 - \b SYSCTL_A_PERIPH_ADC,
400 //!                 - \b SYSCTL_A_PERIPH_EUSCIB3,
401 //!                 - \b SYSCTL_A_PERIPH_EUSCIB2,
402 //!                 - \b SYSCTL_A_PERIPH_EUSCIB1
403 //!                 - \b SYSCTL_A_PERIPH_EUSCIB0,
404 //!                 - \b SYSCTL_A_PERIPH_EUSCIA3,
405 //!                 - \b SYSCTL_A_PERIPH_EUSCIA2
406 //!                 - \b SYSCTL_A_PERIPH_EUSCIA1,
407 //!                 - \b SYSCTL_A_PERIPH_EUSCIA0,
408 //!                 - \b SYSCTL_A_PERIPH_TIMER32_0_MODULE,
409 //!                 - \b SYSCTL_A_PERIPH_TIMER16_3,
410 //!                 - \b SYSCTL_A_PERIPH_TIMER16_2,
411 //!                 - \b SYSCTL_A_PERIPH_TIMER16_1,
412 //!                 - \b SYSCTL_A_PERIPH_TIMER16_0
413 //!
414 //! \return None.
415 //
416 //
417 //*****************************************************************************
418 extern void SysCtl_A_disablePeripheralAtCPUHalt(uint_fast16_t devices);
419 
420 //*****************************************************************************
421 //
422 //! Sets the type of RESET that happens when a watchdog timeout occurs.
423 //!
424 //! \param resetType The type of reset to set
425 //!
426 //! The \e resetType parameter must be only one of the following values:
427 //!         - \b SYSCTL_A_HARD_RESET,
428 //!         - \b SYSCTL_A_SOFT_RESET
429 //!
430 //! \return None.
431 //
432 //
433 //*****************************************************************************
434 extern void SysCtl_A_setWDTTimeoutResetType(uint_fast8_t resetType);
435 
436 //*****************************************************************************
437 //
438 //! Sets the type of RESET that happens when a watchdog password violation
439 //! occurs.
440 //!
441 //! \param resetType The type of reset to set
442 //!
443 //! The \e resetType parameter must be only one of the following values:
444 //!         - \b SYSCTL_A_HARD_RESET,
445 //!         - \b SYSCTL_A_SOFT_RESET
446 //!
447 //! \return None.
448 //
449 //
450 //*****************************************************************************
451 extern void SysCtl_A_setWDTPasswordViolationResetType(uint_fast8_t resetType);
452 
453 //*****************************************************************************
454 //
455 //! Disables NMIs for the provided modules. When disabled, a NMI flag will not
456 //! occur when a fault condition comes from the corresponding modules.
457 //!
458 //! \param flags The NMI sources to disable
459 //! Can be a bitwise OR of the following parameters:
460 //!         - \b SYSCTL_A_NMIPIN_SRC,
461 //!         - \b SYSCTL_A_PCM_SRC,
462 //!         - \b SYSCTL_A_PSS_SRC,
463 //!         - \b SYSCTL_A_CS_SRC
464 //!
465 //
466 //*****************************************************************************
467 extern void SysCtl_A_disableNMISource(uint_fast8_t flags);
468 
469 //*****************************************************************************
470 //
471 //! Enables NMIs for the provided modules. When enabled, a NMI flag will
472 //! occur when a fault condition comes from the corresponding modules.
473 //!
474 //! \param flags The NMI sources to enable
475 //! Can be a bitwise OR of the following parameters:
476 //!         - \b SYSCTL_A_NMIPIN_SRC,
477 //!         - \b SYSCTL_A_PCM_SRC,
478 //!         - \b SYSCTL_A_PSS_SRC,
479 //!         - \b SYSCTL_A_CS_SRC
480 //!
481 //
482 //*****************************************************************************
483 extern void SysCtl_A_enableNMISource(uint_fast8_t flags);
484 
485 //*****************************************************************************
486 //
487 //! Returns the current sources of NMIs that are enabled
488 //!
489 //! \return NMI source status
490 //
491 //*****************************************************************************
492 extern uint_fast8_t SysCtl_A_getNMISourceStatus(void);
493 
494 //*****************************************************************************
495 //
496 //! Enables glitch suppression on the reset pin of the device. Refer to the
497 //! device data sheet for specific information about glitch suppression
498 //!
499 //! \return None.
500 //
501 //
502 //*****************************************************************************
503 extern void SysCtl_A_enableGlitchFilter(void);
504 
505 //*****************************************************************************
506 //
507 //! Disables glitch suppression on the reset pin of the device. Refer to the
508 //! device data sheet for specific information about glitch suppression
509 //!
510 //! \return None.
511 //
512 //
513 //*****************************************************************************
514 extern void SysCtl_A_disableGlitchFilter(void);
515 
516 //*****************************************************************************
517 //
518 //! Retrieves the calibration constant of the temperature sensor to be used
519 //! in temperature calculation.
520 //!
521 //! \param refVoltage Reference voltage being used.
522 //!
523 //! The \e refVoltage parameter must be only one of the following values:
524 //!         - \b SYSCTL_A_1_2V_REF
525 //!         - \b SYSCTL_A_1_45V_REF
526 //!         - \b SYSCTL_A_2_5V_REF
527 //!
528 //! \param temperature is the calibration temperature that the user wants to be
529 //!     returned.
530 //!
531 //! The \e temperature parameter must be only one of the following values:
532 //!         - \b SYSCTL_A_30_DEGREES_C
533 //!         - \b SYSCTL_A_85_DEGREES_C
534 //!
535 //! \return None.
536 //
537 //
538 //*****************************************************************************
539 extern uint_fast16_t SysCtl_A_getTempCalibrationConstant(uint32_t refVoltage,
540         uint32_t temperature);
541 
542 //*****************************************************************************
543 //
544 // Mark the end of the C bindings section for C++ compilers.
545 //
546 //*****************************************************************************
547 #ifdef __cplusplus
548 }
549 #endif
550 
551 //*****************************************************************************
552 //
553 // Close the Doxygen group.
554 //! @}
555 //
556 //*****************************************************************************
557 
558 #endif /* __MCU_HAS_SYSCTL_A__ */
559 
560 #endif // __SYSCTL_A_H__
561