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 "BusIn.h"
aravindsv 0:ba7650f404af 17 #include "mbed_assert.h"
aravindsv 0:ba7650f404af 18
aravindsv 0:ba7650f404af 19 namespace mbed {
aravindsv 0:ba7650f404af 20
aravindsv 0:ba7650f404af 21 BusIn::BusIn(PinName p0, PinName p1, PinName p2, PinName p3, PinName p4, PinName p5, PinName p6, PinName p7, PinName p8, PinName p9, PinName p10, PinName p11, PinName p12, PinName p13, PinName p14, PinName p15) {
aravindsv 0:ba7650f404af 22 PinName pins[16] = {p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15};
aravindsv 0:ba7650f404af 23
aravindsv 0:ba7650f404af 24 _nc_mask = 0;
aravindsv 0:ba7650f404af 25 for (int i=0; i<16; i++) {
aravindsv 0:ba7650f404af 26 _pin[i] = (pins[i] != NC) ? new DigitalIn(pins[i]) : 0;
aravindsv 0:ba7650f404af 27 if (pins[i] != NC) {
aravindsv 0:ba7650f404af 28 _nc_mask |= (1 << i);
aravindsv 0:ba7650f404af 29 }
aravindsv 0:ba7650f404af 30 }
aravindsv 0:ba7650f404af 31 }
aravindsv 0:ba7650f404af 32
aravindsv 0:ba7650f404af 33 BusIn::BusIn(PinName pins[16]) {
aravindsv 0:ba7650f404af 34 _nc_mask = 0;
aravindsv 0:ba7650f404af 35 for (int i=0; i<16; i++) {
aravindsv 0:ba7650f404af 36 _pin[i] = (pins[i] != NC) ? new DigitalIn(pins[i]) : 0;
aravindsv 0:ba7650f404af 37 if (pins[i] != NC) {
aravindsv 0:ba7650f404af 38 _nc_mask |= (1 << i);
aravindsv 0:ba7650f404af 39 }
aravindsv 0:ba7650f404af 40 }
aravindsv 0:ba7650f404af 41 }
aravindsv 0:ba7650f404af 42
aravindsv 0:ba7650f404af 43 BusIn::~BusIn() {
aravindsv 0:ba7650f404af 44 for (int i=0; i<16; i++) {
aravindsv 0:ba7650f404af 45 if (_pin[i] != 0) {
aravindsv 0:ba7650f404af 46 delete _pin[i];
aravindsv 0:ba7650f404af 47 }
aravindsv 0:ba7650f404af 48 }
aravindsv 0:ba7650f404af 49 }
aravindsv 0:ba7650f404af 50
aravindsv 0:ba7650f404af 51 int BusIn::read() {
aravindsv 0:ba7650f404af 52 int v = 0;
aravindsv 0:ba7650f404af 53 for (int i=0; i<16; i++) {
aravindsv 0:ba7650f404af 54 if (_pin[i] != 0) {
aravindsv 0:ba7650f404af 55 v |= _pin[i]->read() << i;
aravindsv 0:ba7650f404af 56 }
aravindsv 0:ba7650f404af 57 }
aravindsv 0:ba7650f404af 58 return v;
aravindsv 0:ba7650f404af 59 }
aravindsv 0:ba7650f404af 60
aravindsv 0:ba7650f404af 61 void BusIn::mode(PinMode pull) {
aravindsv 0:ba7650f404af 62 for (int i=0; i<16; i++) {
aravindsv 0:ba7650f404af 63 if (_pin[i] != 0) {
aravindsv 0:ba7650f404af 64 _pin[i]->mode(pull);
aravindsv 0:ba7650f404af 65 }
aravindsv 0:ba7650f404af 66 }
aravindsv 0:ba7650f404af 67 }
aravindsv 0:ba7650f404af 68
aravindsv 0:ba7650f404af 69 #ifdef MBED_OPERATORS
aravindsv 0:ba7650f404af 70 BusIn::operator int() {
aravindsv 0:ba7650f404af 71 return read();
aravindsv 0:ba7650f404af 72 }
aravindsv 0:ba7650f404af 73
aravindsv 0:ba7650f404af 74 DigitalIn& BusIn::operator[] (int index) {
aravindsv 0:ba7650f404af 75 MBED_ASSERT(index >= 0 && index <= 16);
aravindsv 0:ba7650f404af 76 MBED_ASSERT(_pin[index]);
aravindsv 0:ba7650f404af 77 return *_pin[index];
aravindsv 0:ba7650f404af 78 }
aravindsv 0:ba7650f404af 79
aravindsv 0:ba7650f404af 80 #endif
aravindsv 0:ba7650f404af 81
aravindsv 0:ba7650f404af 82 } // namespace mbed