OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [CORTEX_AT91SAM3U256_IAR/] [AT91Lib/] [peripherals/] [pio/] [pio_it.h] - Blame information for rev 580

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 580 jeremybenn
/* ----------------------------------------------------------------------------
2
 *         ATMEL Microcontroller Software Support
3
 * ----------------------------------------------------------------------------
4
 * Copyright (c) 2008, Atmel Corporation
5
 *
6
 * All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions are met:
10
 *
11
 * - Redistributions of source code must retain the above copyright notice,
12
 * this list of conditions and the disclaimer below.
13
 *
14
 * Atmel's name may not be used to endorse or promote products derived from
15
 * this software without specific prior written permission.
16
 *
17
 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20
 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 * ----------------------------------------------------------------------------
28
 */
29
 
30
//------------------------------------------------------------------------------
31
/// \unit
32
///
33
/// !!!Purpose
34
/// 
35
/// Configuration and handling of interrupts on PIO status changes. The API
36
/// provided here have several advantages over the traditional PIO interrupt
37
/// configuration approach:
38
///    - It is highly portable
39
///    - It automatically demultiplexes interrupts when multiples pins have been
40
///      configured on a single PIO controller
41
///    - It allows a group of pins to share the same interrupt
42
/// 
43
/// However, it also has several minor drawbacks that may prevent from using it
44
/// in particular applications:
45
///    - It enables the clocks of all PIO controllers
46
///    - PIO controllers all share the same interrupt handler, which does the
47
///      demultiplexing and can be slower than direct configuration
48
///    - It reserves space for a fixed number of interrupts, which can be
49
///      increased by modifying the appropriate constant in pio_it.c.
50
///
51
/// !!!Usage
52
/// 
53
/// -# Initialize the PIO interrupt mechanism using PIO_InitializeInterrupts()
54
///    with the desired priority (0 ... 7).
55
/// -# Configure a status change interrupt on one or more pin(s) with
56
///    PIO_ConfigureIt().
57
/// -# Enable & disable interrupts on pins using PIO_EnableIt() and
58
///    PIO_DisableIt().
59
//------------------------------------------------------------------------------
60
 
61
#ifndef PIO_IT_H
62
#define PIO_IT_H
63
 
64
//------------------------------------------------------------------------------
65
//         Headers
66
//------------------------------------------------------------------------------
67
 
68
#include "pio.h"
69
 
70
//------------------------------------------------------------------------------
71
//         Global functions
72
//------------------------------------------------------------------------------
73
 
74
extern void PIO_InitializeInterrupts(unsigned int priority);
75
 
76
extern void PIO_ConfigureIt(const Pin *pPin, void (*handler)(const Pin *));
77
 
78
extern void PIO_EnableIt(const Pin *pPin);
79
 
80
extern void PIO_DisableIt(const Pin *pPin);
81
 
82
extern void PIO_IT_InterruptHandler(void);
83
 
84
#endif //#ifndef PIO_IT_H
85
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.