Rigado / mbed-src-bmd-200

Dependents:   mbed_blinky-bmd-200 bmd-200_accel_demo firstRig

Fork of mbed-src by mbed official

Committer:
dcnichols
Date:
Fri Jul 10 17:36:27 2015 +0000
Revision:
592:5e2eb8beba71
Parent:
583:53297373a894
updating to latest mbed-src

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 583:53297373a894 1 /* mbed Microcontroller Library
mbed_official 583:53297373a894 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 583:53297373a894 3 *
mbed_official 583:53297373a894 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 583:53297373a894 5 * you may not use this file except in compliance with the License.
mbed_official 583:53297373a894 6 * You may obtain a copy of the License at
mbed_official 583:53297373a894 7 *
mbed_official 583:53297373a894 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 583:53297373a894 9 *
mbed_official 583:53297373a894 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 583:53297373a894 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 583:53297373a894 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 583:53297373a894 13 * See the License for the specific language governing permissions and
mbed_official 583:53297373a894 14 * limitations under the License.
mbed_official 583:53297373a894 15 */
mbed_official 583:53297373a894 16 #ifndef MBED_GPIO_OBJECT_H
mbed_official 583:53297373a894 17 #define MBED_GPIO_OBJECT_H
mbed_official 583:53297373a894 18
mbed_official 583:53297373a894 19 #include "mbed_assert.h"
mbed_official 583:53297373a894 20
mbed_official 583:53297373a894 21 #ifdef __cplusplus
mbed_official 583:53297373a894 22 extern "C" {
mbed_official 583:53297373a894 23 #endif
mbed_official 583:53297373a894 24
mbed_official 583:53297373a894 25 typedef struct {
mbed_official 583:53297373a894 26 PinName pin;
mbed_official 583:53297373a894 27 uint32_t mask;
mbed_official 583:53297373a894 28 uint8_t powersave;
mbed_official 583:53297373a894 29 uint8_t mode;
mbed_official 583:53297373a894 30 uint8_t direction;
mbed_official 583:53297373a894 31
mbed_official 583:53297373a894 32 __IO uint32_t *OUTCLR;
mbed_official 583:53297373a894 33 __IO uint32_t *OUTSET;
mbed_official 583:53297373a894 34 __I uint32_t *IN;
mbed_official 583:53297373a894 35 __I uint32_t *OUT;
mbed_official 583:53297373a894 36 } gpio_t;
mbed_official 583:53297373a894 37
mbed_official 583:53297373a894 38 static inline void gpio_write(gpio_t *obj, int value)
mbed_official 583:53297373a894 39 {
mbed_official 583:53297373a894 40 MBED_ASSERT(obj->pin != (PinName)NC);
mbed_official 583:53297373a894 41 if (value)
mbed_official 583:53297373a894 42 *obj->OUTSET = obj->mask;
mbed_official 583:53297373a894 43 else
mbed_official 583:53297373a894 44 *obj->OUTCLR = obj->mask;
mbed_official 583:53297373a894 45 }
mbed_official 583:53297373a894 46
mbed_official 583:53297373a894 47 static inline int gpio_read(gpio_t *obj)
mbed_official 583:53297373a894 48 {
mbed_official 583:53297373a894 49 MBED_ASSERT(obj->pin != (PinName)NC);
mbed_official 583:53297373a894 50 if (obj->direction == PIN_INPUT)
mbed_official 583:53297373a894 51 return ((*obj->IN & obj->mask) ? 1 : 0);
mbed_official 583:53297373a894 52 else
mbed_official 583:53297373a894 53 return ((*obj->OUT & obj->mask) ? 1 : 0);
mbed_official 583:53297373a894 54 }
mbed_official 583:53297373a894 55
mbed_official 583:53297373a894 56 static inline int gpio_is_connected(const gpio_t *obj)
mbed_official 583:53297373a894 57 {
mbed_official 583:53297373a894 58 return obj->pin != (PinName)NC;
mbed_official 583:53297373a894 59 }
mbed_official 583:53297373a894 60
mbed_official 583:53297373a894 61 #ifdef __cplusplus
mbed_official 583:53297373a894 62 }
mbed_official 583:53297373a894 63 #endif
mbed_official 583:53297373a894 64
mbed_official 583:53297373a894 65 #endif