The official mbed C/C SDK provides the software platform and libraries to build your applications.

Fork of mbed by mbed official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers gpio_object.h Source File

gpio_object.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 #ifndef MBED_GPIO_OBJECT_H
00017 #define MBED_GPIO_OBJECT_H
00018 
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022 
00023 typedef struct {
00024     PinName  pin;
00025     uint32_t mask;
00026 
00027     __IO uint32_t *reg_dir;
00028     __IO uint32_t *reg_set;
00029     __IO uint32_t *reg_clr;
00030     __I  uint32_t *reg_in;
00031 } gpio_t;
00032 
00033 static inline void gpio_write(gpio_t *obj, int value) {
00034     if (value)
00035         *obj->reg_set = obj->mask;
00036     else
00037         *obj->reg_clr = obj->mask;
00038 }
00039 
00040 static inline int gpio_read(gpio_t *obj) {
00041     return ((*obj->reg_in & obj->mask) ? 1 : 0);
00042 }
00043 
00044 #ifdef __cplusplus
00045 }
00046 #endif
00047 
00048 #endif