RTEMS  5.0.0
pio_it.h
Go to the documentation of this file.
1 /* ---------------------------------------------------------------------------- */
2 /* Atmel Microcontroller Software Support */
3 /* SAM Software Package License */
4 /* ---------------------------------------------------------------------------- */
5 /* Copyright (c) 2015, Atmel Corporation */
6 /* */
7 /* All rights reserved. */
8 /* */
9 /* Redistribution and use in source and binary forms, with or without */
10 /* modification, are permitted provided that the following condition is met: */
11 /* */
12 /* - Redistributions of source code must retain the above copyright notice, */
13 /* this list of conditions and the disclaimer below. */
14 /* */
15 /* Atmel's name may not be used to endorse or promote products derived from */
16 /* this software without specific prior written permission. */
17 /* */
18 /* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28 /* ---------------------------------------------------------------------------- */
29 
61 #ifndef _PIO_IT_
62 #define _PIO_IT_
63 
64 /*
65  * Headers
66  */
67 
68 #include "pio.h"
69 
70 #ifdef __cplusplus
71 extern "C" {
72 #endif
73 
74 /*
75  * Global functions
76  */
77 
78 extern void PIO_InitializeInterrupts(uint32_t dwPriority);
79 
80 extern void PIO_ConfigureIt(const Pin *pPin,
81  void (*handler)(const Pin *, void *arg), void *arg);
82 
83 
90 static inline void PIO_EnableIt(const Pin *pPin)
91 {
92  pPin->pio->PIO_ISR;
93  pPin->pio->PIO_IER = pPin->mask;
94 }
95 
101 static inline void PIO_DisableIt(const Pin *pPin)
102 {
103  pPin->pio->PIO_IDR = pPin->mask;
104 }
105 
106 extern void PIO_IT_InterruptHandler(void);
107 
108 extern void PioInterruptHandler(uint32_t id, Pio *pPio);
109 
110 extern void PIO_CaptureHandler(void);
111 
112 #ifdef __cplusplus
113 }
114 #endif
115 
116 #endif /* #ifndef _PIO_IT_ */
117 
__O uint32_t PIO_IER
(Pio Offset: 0x0040) Interrupt Enable Register
Definition: component_pio.h:58
Definition: pio.h:172
__O uint32_t PIO_IDR
(Pio Offset: 0x0044) Interrupt Disable Register
Definition: component_pio.h:59
Pio hardware registers.
Definition: component_pio.h:41
void PIO_CaptureHandler(void)
The PIO_CaptureHandler must be called by the PIO Capture Interrupt Service Routine with the correspon...
Definition: pio_capture.c:113
__I uint32_t PIO_ISR
(Pio Offset: 0x004C) Interrupt Status Register
Definition: component_pio.h:61
void PIO_ConfigureIt(const Pin *pPin, void(*handler)(const Pin *, void *arg), void *arg)
Definition: pio_it.c:258