RTEMS 6.1-rc5
Loading...
Searching...
No Matches
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#include <rtems.h>
70
71#ifdef __cplusplus
72extern "C" {
73#endif
74
75/*
76 * Global functions
77 */
78
79extern void PIO_InitializeInterrupts(uint32_t dwPriority);
80
81extern void PIO_ConfigureIt(const Pin *pPin,
82 void (*handler)(const Pin *, void *arg), void *arg);
83
84extern rtems_status_code PIO_RemoveIt(const Pin *pPin,
85 void (*handler)(const Pin *, void *arg), void *arg);
86
93static inline void PIO_EnableIt(const Pin *pPin)
94{
95 pPin->pio->PIO_ISR;
96 pPin->pio->PIO_IER = pPin->mask;
97}
98
104static inline void PIO_DisableIt(const Pin *pPin)
105{
106 pPin->pio->PIO_IDR = pPin->mask;
107}
108
114static inline bool PIO_ItIsActive(const Pin *pPin)
115{
116 return ((pPin->pio->PIO_IMR & pPin->mask) != 0);
117}
118
119extern void PIO_IT_InterruptHandler(void);
120
121extern void PioInterruptHandler(uint32_t id, Pio *pPio);
122
123extern void PIO_CaptureHandler(void);
124
125#ifdef __cplusplus
126}
127#endif
128
129#endif /* #ifndef _PIO_IT_ */
130
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
void PIO_ConfigureIt(const Pin *pPin, void(*handler)(const Pin *, void *arg), void *arg)
Definition: pio_it.c:264
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
rtems_status_code PIO_RemoveIt(const Pin *pPin, void(*handler)(const Pin *, void *arg), void *arg)
Definition: pio_it.c:299
This header file defines the RTEMS Classic API.
Pio hardware registers.
Definition: component_pio.h:41
__I uint32_t PIO_ISR
(Pio Offset: 0x004C) Interrupt Status Register
Definition: component_pio.h:61
__O uint32_t PIO_IER
(Pio Offset: 0x0040) Interrupt Enable Register
Definition: component_pio.h:58
__I uint32_t PIO_IMR
(Pio Offset: 0x0048) Interrupt Mask Register
Definition: component_pio.h:60
__O uint32_t PIO_IDR
(Pio Offset: 0x0044) Interrupt Disable Register
Definition: component_pio.h:59
Definition: pio.h:172