mbed.h library with any bug fixes AV finds.

Dependents:   micromouse4_encoder_testing PID_Test Lab1_Test WorkingPID ... more

Committer:
aravindsv
Date:
Mon Nov 02 02:26:59 2015 +0000
Revision:
0:ba7650f404af
Reduced HSE_STARTUP_TIMEOUT to 500 ms, fixed some compiler warnings

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aravindsv 0:ba7650f404af 1 /* mbed Microcontroller Library
aravindsv 0:ba7650f404af 2 * Copyright (c) 2006-2013 ARM Limited
aravindsv 0:ba7650f404af 3 *
aravindsv 0:ba7650f404af 4 * Licensed under the Apache License, Version 2.0 (the "License");
aravindsv 0:ba7650f404af 5 * you may not use this file except in compliance with the License.
aravindsv 0:ba7650f404af 6 * You may obtain a copy of the License at
aravindsv 0:ba7650f404af 7 *
aravindsv 0:ba7650f404af 8 * http://www.apache.org/licenses/LICENSE-2.0
aravindsv 0:ba7650f404af 9 *
aravindsv 0:ba7650f404af 10 * Unless required by applicable law or agreed to in writing, software
aravindsv 0:ba7650f404af 11 * distributed under the License is distributed on an "AS IS" BASIS,
aravindsv 0:ba7650f404af 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
aravindsv 0:ba7650f404af 13 * See the License for the specific language governing permissions and
aravindsv 0:ba7650f404af 14 * limitations under the License.
aravindsv 0:ba7650f404af 15 */
aravindsv 0:ba7650f404af 16 #include "gpio_api.h"
aravindsv 0:ba7650f404af 17
aravindsv 0:ba7650f404af 18 static inline void _gpio_init_in(gpio_t* gpio, PinName pin, PinMode mode)
aravindsv 0:ba7650f404af 19 {
aravindsv 0:ba7650f404af 20 gpio_init(gpio, pin);
aravindsv 0:ba7650f404af 21 if (pin != NC) {
aravindsv 0:ba7650f404af 22 gpio_dir(gpio, PIN_INPUT);
aravindsv 0:ba7650f404af 23 gpio_mode(gpio, mode);
aravindsv 0:ba7650f404af 24 }
aravindsv 0:ba7650f404af 25 }
aravindsv 0:ba7650f404af 26
aravindsv 0:ba7650f404af 27 static inline void _gpio_init_out(gpio_t* gpio, PinName pin, PinMode mode, int value)
aravindsv 0:ba7650f404af 28 {
aravindsv 0:ba7650f404af 29 gpio_init(gpio, pin);
aravindsv 0:ba7650f404af 30 if (pin != NC) {
aravindsv 0:ba7650f404af 31 gpio_write(gpio, value);
aravindsv 0:ba7650f404af 32 gpio_dir(gpio, PIN_OUTPUT);
aravindsv 0:ba7650f404af 33 gpio_mode(gpio, mode);
aravindsv 0:ba7650f404af 34 }
aravindsv 0:ba7650f404af 35 }
aravindsv 0:ba7650f404af 36
aravindsv 0:ba7650f404af 37 void gpio_init_in(gpio_t* gpio, PinName pin) {
aravindsv 0:ba7650f404af 38 gpio_init_in_ex(gpio, pin, PullDefault);
aravindsv 0:ba7650f404af 39 }
aravindsv 0:ba7650f404af 40
aravindsv 0:ba7650f404af 41 void gpio_init_in_ex(gpio_t* gpio, PinName pin, PinMode mode) {
aravindsv 0:ba7650f404af 42 _gpio_init_in(gpio, pin, mode);
aravindsv 0:ba7650f404af 43 }
aravindsv 0:ba7650f404af 44
aravindsv 0:ba7650f404af 45 void gpio_init_out(gpio_t* gpio, PinName pin) {
aravindsv 0:ba7650f404af 46 gpio_init_out_ex(gpio, pin, 0);
aravindsv 0:ba7650f404af 47 }
aravindsv 0:ba7650f404af 48
aravindsv 0:ba7650f404af 49 void gpio_init_out_ex(gpio_t* gpio, PinName pin, int value) {
aravindsv 0:ba7650f404af 50 _gpio_init_out(gpio, pin, PullNone, value);
aravindsv 0:ba7650f404af 51 }
aravindsv 0:ba7650f404af 52
aravindsv 0:ba7650f404af 53 void gpio_init_inout(gpio_t* gpio, PinName pin, PinDirection direction, PinMode mode, int value) {
aravindsv 0:ba7650f404af 54 if (direction == PIN_INPUT) {
aravindsv 0:ba7650f404af 55 _gpio_init_in(gpio, pin, mode);
aravindsv 0:ba7650f404af 56 if (pin != NC)
aravindsv 0:ba7650f404af 57 gpio_write(gpio, value); // we prepare the value in case it is switched later
aravindsv 0:ba7650f404af 58 } else {
aravindsv 0:ba7650f404af 59 _gpio_init_out(gpio, pin, mode, value);
aravindsv 0:ba7650f404af 60 }
aravindsv 0:ba7650f404af 61 }