Marco Mayer / Mbed OS Queue
Committer:
demayer
Date:
Wed Apr 22 11:50:00 2020 +0000
Revision:
2:c7897a3f5f11
Parent:
0:6bf0743ece18
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
demayer 0:6bf0743ece18 1 /**
demayer 0:6bf0743ece18 2 * \file
demayer 0:6bf0743ece18 3 *
demayer 0:6bf0743ece18 4 * \brief SAM External Interrupt Driver
demayer 0:6bf0743ece18 5 *
demayer 0:6bf0743ece18 6 * Copyright (C) 2012-2015 Atmel Corporation. All rights reserved.
demayer 0:6bf0743ece18 7 *
demayer 0:6bf0743ece18 8 * \asf_license_start
demayer 0:6bf0743ece18 9 *
demayer 0:6bf0743ece18 10 * \page License
demayer 0:6bf0743ece18 11 *
demayer 0:6bf0743ece18 12 * Redistribution and use in source and binary forms, with or without
demayer 0:6bf0743ece18 13 * modification, are permitted provided that the following conditions are met:
demayer 0:6bf0743ece18 14 *
demayer 0:6bf0743ece18 15 * 1. Redistributions of source code must retain the above copyright notice,
demayer 0:6bf0743ece18 16 * this list of conditions and the following disclaimer.
demayer 0:6bf0743ece18 17 *
demayer 0:6bf0743ece18 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
demayer 0:6bf0743ece18 19 * this list of conditions and the following disclaimer in the documentation
demayer 0:6bf0743ece18 20 * and/or other materials provided with the distribution.
demayer 0:6bf0743ece18 21 *
demayer 0:6bf0743ece18 22 * 3. The name of Atmel may not be used to endorse or promote products derived
demayer 0:6bf0743ece18 23 * from this software without specific prior written permission.
demayer 0:6bf0743ece18 24 *
demayer 0:6bf0743ece18 25 * 4. This software may only be redistributed and used in connection with an
demayer 0:6bf0743ece18 26 * Atmel microcontroller product.
demayer 0:6bf0743ece18 27 *
demayer 0:6bf0743ece18 28 * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
demayer 0:6bf0743ece18 29 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
demayer 0:6bf0743ece18 30 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
demayer 0:6bf0743ece18 31 * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
demayer 0:6bf0743ece18 32 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
demayer 0:6bf0743ece18 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
demayer 0:6bf0743ece18 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
demayer 0:6bf0743ece18 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
demayer 0:6bf0743ece18 36 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
demayer 0:6bf0743ece18 37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
demayer 0:6bf0743ece18 38 * POSSIBILITY OF SUCH DAMAGE.
demayer 0:6bf0743ece18 39 *
demayer 0:6bf0743ece18 40 * \asf_license_stop
demayer 0:6bf0743ece18 41 *
demayer 0:6bf0743ece18 42 */
demayer 0:6bf0743ece18 43 /*
demayer 0:6bf0743ece18 44 * Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
demayer 0:6bf0743ece18 45 */
demayer 0:6bf0743ece18 46 #ifndef EXTINT_CALLBACK_H_INCLUDED
demayer 0:6bf0743ece18 47 #define EXTINT_CALLBACK_H_INCLUDED
demayer 0:6bf0743ece18 48
demayer 0:6bf0743ece18 49 #include <compiler.h>
demayer 0:6bf0743ece18 50
demayer 0:6bf0743ece18 51 #ifdef __cplusplus
demayer 0:6bf0743ece18 52 extern "C" {
demayer 0:6bf0743ece18 53 #endif
demayer 0:6bf0743ece18 54
demayer 0:6bf0743ece18 55 /**
demayer 0:6bf0743ece18 56 * \addtogroup asfdoc_sam0_extint_group
demayer 0:6bf0743ece18 57 *
demayer 0:6bf0743ece18 58 * @{
demayer 0:6bf0743ece18 59 */
demayer 0:6bf0743ece18 60
demayer 0:6bf0743ece18 61 /** \name Callback Configuration and Initialization
demayer 0:6bf0743ece18 62 * @{
demayer 0:6bf0743ece18 63 */
demayer 0:6bf0743ece18 64
demayer 0:6bf0743ece18 65 /** Enum for the possible callback types for the EXTINT module. */
demayer 0:6bf0743ece18 66 enum extint_callback_type {
demayer 0:6bf0743ece18 67 /** Callback type for when an external interrupt detects the configured
demayer 0:6bf0743ece18 68 * channel criteria.(i.e. edge or level detection)
demayer 0:6bf0743ece18 69 */
demayer 0:6bf0743ece18 70 EXTINT_CALLBACK_TYPE_DETECT,
demayer 0:6bf0743ece18 71 };
demayer 0:6bf0743ece18 72
demayer 0:6bf0743ece18 73 enum status_code extint_register_callback(
demayer 0:6bf0743ece18 74 const extint_callback_t callback,
demayer 0:6bf0743ece18 75 const uint8_t channel,
demayer 0:6bf0743ece18 76 const enum extint_callback_type type);
demayer 0:6bf0743ece18 77
demayer 0:6bf0743ece18 78 enum status_code extint_unregister_callback(
demayer 0:6bf0743ece18 79 const extint_callback_t callback,
demayer 0:6bf0743ece18 80 const uint8_t channel,
demayer 0:6bf0743ece18 81 const enum extint_callback_type type);
demayer 0:6bf0743ece18 82
demayer 0:6bf0743ece18 83 uint8_t extint_get_current_channel(void);
demayer 0:6bf0743ece18 84
demayer 0:6bf0743ece18 85 /** @} */
demayer 0:6bf0743ece18 86
demayer 0:6bf0743ece18 87 /** \name Callback Enabling and Disabling (Channel)
demayer 0:6bf0743ece18 88 * @{
demayer 0:6bf0743ece18 89 */
demayer 0:6bf0743ece18 90
demayer 0:6bf0743ece18 91 enum status_code extint_chan_enable_callback(
demayer 0:6bf0743ece18 92 const uint8_t channel,
demayer 0:6bf0743ece18 93 const enum extint_callback_type type);
demayer 0:6bf0743ece18 94
demayer 0:6bf0743ece18 95 enum status_code extint_chan_disable_callback(
demayer 0:6bf0743ece18 96 const uint8_t channel,
demayer 0:6bf0743ece18 97 const enum extint_callback_type type);
demayer 0:6bf0743ece18 98
demayer 0:6bf0743ece18 99 /** @} */
demayer 0:6bf0743ece18 100
demayer 0:6bf0743ece18 101 /** @} */
demayer 0:6bf0743ece18 102
demayer 0:6bf0743ece18 103 #ifdef __cplusplus
demayer 0:6bf0743ece18 104 }
demayer 0:6bf0743ece18 105 #endif
demayer 0:6bf0743ece18 106
demayer 0:6bf0743ece18 107 #endif