mikroSDK Reference Manual
interrupt.h
1//*****************************************************************************
2//
3// interrupt.h - Prototypes for the NVIC Interrupt Controller Driver.
4//
5// Copyright (c) 2005-2020 Texas Instruments Incorporated. All rights reserved.
6// Software License Agreement
7//
8// Redistribution and use in source and binary forms, with or without
9// modification, are permitted provided that the following conditions
10// are met:
11//
12// Redistributions of source code must retain the above copyright
13// notice, this list of conditions and the following disclaimer.
14//
15// Redistributions in binary form must reproduce the above copyright
16// notice, this list of conditions and the following disclaimer in the
17// documentation and/or other materials provided with the
18// distribution.
19//
20// Neither the name of Texas Instruments Incorporated nor the names of
21// its contributors may be used to endorse or promote products derived
22// from this software without specific prior written permission.
23//
24// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35//
36// This is part of revision 2.2.0.295 of the Tiva Peripheral Driver Library.
37//
38//*****************************************************************************
39
40#ifndef __DRIVERLIB_INTERRUPT_H__
41#define __DRIVERLIB_INTERRUPT_H__
42
43//*****************************************************************************
44//
45// If building with a C++ compiler, make all of the definitions in this header
46// have a C binding.
47//
48//*****************************************************************************
49#ifdef __cplusplus
50extern "C"
51{
52#endif
53
54//*****************************************************************************
55//
56// Macro to generate an interrupt priority mask based on the number of bits
57// of priority supported by the hardware.
58//
59//*****************************************************************************
60#define INT_PRIORITY_MASK ((0xFF << (8 - NUM_PRIORITY_BITS)) & 0xFF)
61
62//*****************************************************************************
63//
64// Prototypes for the APIs.
65//
66//*****************************************************************************
67extern bool IntMasterEnable(void);
68extern bool IntMasterDisable(void);
69extern void IntRegister(uint32_t ui32Interrupt, void (*pfnHandler)(void));
70extern void IntUnregister(uint32_t ui32Interrupt);
71extern void IntPriorityGroupingSet(uint32_t ui32Bits);
72extern uint32_t IntPriorityGroupingGet(void);
73extern void IntPrioritySet(uint32_t ui32Interrupt,
74 uint8_t ui8Priority);
75extern int32_t IntPriorityGet(uint32_t ui32Interrupt);
76extern void IntEnable(uint32_t ui32Interrupt);
77extern void IntDisable(uint32_t ui32Interrupt);
78extern uint32_t IntIsEnabled(uint32_t ui32Interrupt);
79extern void IntPendSet(uint32_t ui32Interrupt);
80extern void IntPendClear(uint32_t ui32Interrupt);
81extern void IntPriorityMaskSet(uint32_t ui32PriorityMask);
82extern uint32_t IntPriorityMaskGet(void);
83extern void IntTrigger(uint32_t ui32Interrupt);
84
85//*****************************************************************************
86//
87// Mark the end of the C bindings section for C++ compilers.
88//
89//*****************************************************************************
90#ifdef __cplusplus
91}
92#endif
93
94#endif // __DRIVERLIB_INTERRUPT_H__