customized mbed library sources for nrf51822

Dependents:   Grove_Node Potentiometer BLE_Beacon I2C_Scanner

Committer:
yihui
Date:
Tue Nov 04 07:38:53 2014 +0000
Revision:
0:700cadd8b708
customized mbed-src library for nrf51822

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yihui 0:700cadd8b708 1 /* mbed Microcontroller Library
yihui 0:700cadd8b708 2 * Copyright (c) 2006-2013 ARM Limited
yihui 0:700cadd8b708 3 *
yihui 0:700cadd8b708 4 * Licensed under the Apache License, Version 2.0 (the "License");
yihui 0:700cadd8b708 5 * you may not use this file except in compliance with the License.
yihui 0:700cadd8b708 6 * You may obtain a copy of the License at
yihui 0:700cadd8b708 7 *
yihui 0:700cadd8b708 8 * http://www.apache.org/licenses/LICENSE-2.0
yihui 0:700cadd8b708 9 *
yihui 0:700cadd8b708 10 * Unless required by applicable law or agreed to in writing, software
yihui 0:700cadd8b708 11 * distributed under the License is distributed on an "AS IS" BASIS,
yihui 0:700cadd8b708 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
yihui 0:700cadd8b708 13 * See the License for the specific language governing permissions and
yihui 0:700cadd8b708 14 * limitations under the License.
yihui 0:700cadd8b708 15 */
yihui 0:700cadd8b708 16 #include "BusIn.h"
yihui 0:700cadd8b708 17
yihui 0:700cadd8b708 18 namespace mbed {
yihui 0:700cadd8b708 19
yihui 0:700cadd8b708 20 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) {
yihui 0:700cadd8b708 21 PinName pins[16] = {p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15};
yihui 0:700cadd8b708 22
yihui 0:700cadd8b708 23 for (int i=0; i<16; i++) {
yihui 0:700cadd8b708 24 _pin[i] = (pins[i] != NC) ? new DigitalIn(pins[i]) : 0;
yihui 0:700cadd8b708 25 }
yihui 0:700cadd8b708 26 }
yihui 0:700cadd8b708 27
yihui 0:700cadd8b708 28 BusIn::BusIn(PinName pins[16]) {
yihui 0:700cadd8b708 29 for (int i=0; i<16; i++) {
yihui 0:700cadd8b708 30 _pin[i] = (pins[i] != NC) ? new DigitalIn(pins[i]) : 0;
yihui 0:700cadd8b708 31 }
yihui 0:700cadd8b708 32 }
yihui 0:700cadd8b708 33
yihui 0:700cadd8b708 34 BusIn::~BusIn() {
yihui 0:700cadd8b708 35 for (int i=0; i<16; i++) {
yihui 0:700cadd8b708 36 if (_pin[i] != 0) {
yihui 0:700cadd8b708 37 delete _pin[i];
yihui 0:700cadd8b708 38 }
yihui 0:700cadd8b708 39 }
yihui 0:700cadd8b708 40 }
yihui 0:700cadd8b708 41
yihui 0:700cadd8b708 42 int BusIn::read() {
yihui 0:700cadd8b708 43 int v = 0;
yihui 0:700cadd8b708 44 for (int i=0; i<16; i++) {
yihui 0:700cadd8b708 45 if (_pin[i] != 0) {
yihui 0:700cadd8b708 46 v |= _pin[i]->read() << i;
yihui 0:700cadd8b708 47 }
yihui 0:700cadd8b708 48 }
yihui 0:700cadd8b708 49 return v;
yihui 0:700cadd8b708 50 }
yihui 0:700cadd8b708 51
yihui 0:700cadd8b708 52 void BusIn::mode(PinMode pull) {
yihui 0:700cadd8b708 53 for (int i=0; i<16; i++) {
yihui 0:700cadd8b708 54 if (_pin[i] != 0) {
yihui 0:700cadd8b708 55 _pin[i]->mode(pull);
yihui 0:700cadd8b708 56 }
yihui 0:700cadd8b708 57 }
yihui 0:700cadd8b708 58 }
yihui 0:700cadd8b708 59
yihui 0:700cadd8b708 60 #ifdef MBED_OPERATORS
yihui 0:700cadd8b708 61 BusIn::operator int() {
yihui 0:700cadd8b708 62 return read();
yihui 0:700cadd8b708 63 }
yihui 0:700cadd8b708 64 #endif
yihui 0:700cadd8b708 65
yihui 0:700cadd8b708 66 } // namespace mbed