mbed library for slider v2

Dependents:   kl46z_slider_v2

Committer:
mturner5
Date:
Wed Sep 14 07:04:27 2016 +0000
Revision:
0:b7116bd48af6
Tried to use the timer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mturner5 0:b7116bd48af6 1 /* mbed Microcontroller Library
mturner5 0:b7116bd48af6 2 * Copyright (c) 2006-2013 ARM Limited
mturner5 0:b7116bd48af6 3 *
mturner5 0:b7116bd48af6 4 * Licensed under the Apache License, Version 2.0 (the "License");
mturner5 0:b7116bd48af6 5 * you may not use this file except in compliance with the License.
mturner5 0:b7116bd48af6 6 * You may obtain a copy of the License at
mturner5 0:b7116bd48af6 7 *
mturner5 0:b7116bd48af6 8 * http://www.apache.org/licenses/LICENSE-2.0
mturner5 0:b7116bd48af6 9 *
mturner5 0:b7116bd48af6 10 * Unless required by applicable law or agreed to in writing, software
mturner5 0:b7116bd48af6 11 * distributed under the License is distributed on an "AS IS" BASIS,
mturner5 0:b7116bd48af6 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mturner5 0:b7116bd48af6 13 * See the License for the specific language governing permissions and
mturner5 0:b7116bd48af6 14 * limitations under the License.
mturner5 0:b7116bd48af6 15 */
mturner5 0:b7116bd48af6 16 #ifndef MBED_GPIO_IRQ_API_H
mturner5 0:b7116bd48af6 17 #define MBED_GPIO_IRQ_API_H
mturner5 0:b7116bd48af6 18
mturner5 0:b7116bd48af6 19 #include "device.h"
mturner5 0:b7116bd48af6 20
mturner5 0:b7116bd48af6 21 #if DEVICE_INTERRUPTIN
mturner5 0:b7116bd48af6 22
mturner5 0:b7116bd48af6 23 #ifdef __cplusplus
mturner5 0:b7116bd48af6 24 extern "C" {
mturner5 0:b7116bd48af6 25 #endif
mturner5 0:b7116bd48af6 26
mturner5 0:b7116bd48af6 27 /** GPIO IRQ events
mturner5 0:b7116bd48af6 28 */
mturner5 0:b7116bd48af6 29 typedef enum {
mturner5 0:b7116bd48af6 30 IRQ_NONE,
mturner5 0:b7116bd48af6 31 IRQ_RISE,
mturner5 0:b7116bd48af6 32 IRQ_FALL
mturner5 0:b7116bd48af6 33 } gpio_irq_event;
mturner5 0:b7116bd48af6 34
mturner5 0:b7116bd48af6 35 /** GPIO IRQ HAL structure. gpio_irq_s is declared in the target's HAL
mturner5 0:b7116bd48af6 36 */
mturner5 0:b7116bd48af6 37 typedef struct gpio_irq_s gpio_irq_t;
mturner5 0:b7116bd48af6 38
mturner5 0:b7116bd48af6 39 typedef void (*gpio_irq_handler)(uint32_t id, gpio_irq_event event);
mturner5 0:b7116bd48af6 40
mturner5 0:b7116bd48af6 41 /**
mturner5 0:b7116bd48af6 42 * \defgroup hal_gpioirq GPIO IRQ HAL functions
mturner5 0:b7116bd48af6 43 * @{
mturner5 0:b7116bd48af6 44 */
mturner5 0:b7116bd48af6 45
mturner5 0:b7116bd48af6 46 /** Initialize the GPIO IRQ pin
mturner5 0:b7116bd48af6 47 *
mturner5 0:b7116bd48af6 48 * @param obj The GPIO object to initialize
mturner5 0:b7116bd48af6 49 * @param pin The GPIO pin name
mturner5 0:b7116bd48af6 50 * @param handler The handler to be attached to GPIO IRQ
mturner5 0:b7116bd48af6 51 * @param id The object ID (id != 0, 0 is reserved)
mturner5 0:b7116bd48af6 52 * @return -1 if pin is NC, 0 otherwise
mturner5 0:b7116bd48af6 53 */
mturner5 0:b7116bd48af6 54 int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id);
mturner5 0:b7116bd48af6 55
mturner5 0:b7116bd48af6 56 /** Release the GPIO IRQ PIN
mturner5 0:b7116bd48af6 57 *
mturner5 0:b7116bd48af6 58 * @param obj The gpio object
mturner5 0:b7116bd48af6 59 */
mturner5 0:b7116bd48af6 60 void gpio_irq_free(gpio_irq_t *obj);
mturner5 0:b7116bd48af6 61
mturner5 0:b7116bd48af6 62 /** Enable/disable pin IRQ event
mturner5 0:b7116bd48af6 63 *
mturner5 0:b7116bd48af6 64 * @param obj The GPIO object
mturner5 0:b7116bd48af6 65 * @param event The GPIO IRQ event
mturner5 0:b7116bd48af6 66 * @param enable The enable flag
mturner5 0:b7116bd48af6 67 */
mturner5 0:b7116bd48af6 68 void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable);
mturner5 0:b7116bd48af6 69
mturner5 0:b7116bd48af6 70 /** Enable GPIO IRQ
mturner5 0:b7116bd48af6 71 *
mturner5 0:b7116bd48af6 72 * This is target dependent, as it might enable the entire port or just a pin
mturner5 0:b7116bd48af6 73 * @param obj The GPIO object
mturner5 0:b7116bd48af6 74 */
mturner5 0:b7116bd48af6 75 void gpio_irq_enable(gpio_irq_t *obj);
mturner5 0:b7116bd48af6 76
mturner5 0:b7116bd48af6 77 /** Disable GPIO IRQ
mturner5 0:b7116bd48af6 78 *
mturner5 0:b7116bd48af6 79 * This is target dependent, as it might disable the entire port or just a pin
mturner5 0:b7116bd48af6 80 * @param obj The GPIO object
mturner5 0:b7116bd48af6 81 */
mturner5 0:b7116bd48af6 82 void gpio_irq_disable(gpio_irq_t *obj);
mturner5 0:b7116bd48af6 83
mturner5 0:b7116bd48af6 84 /**@}*/
mturner5 0:b7116bd48af6 85
mturner5 0:b7116bd48af6 86 #ifdef __cplusplus
mturner5 0:b7116bd48af6 87 }
mturner5 0:b7116bd48af6 88 #endif
mturner5 0:b7116bd48af6 89
mturner5 0:b7116bd48af6 90 #endif
mturner5 0:b7116bd48af6 91
mturner5 0:b7116bd48af6 92 #endif