Blink, remove compiler errors

Dependents:   STM32F031_Blink_Aug17

Fork of mbed-STM32F030F4 by Nothing Special

Committer:
stupidcode
Date:
Sun Aug 27 18:32:02 2017 +0000
Revision:
12:ee1efe6181e7
Parent:
0:38ccae254a29
Blink;

Who changed what in which revision?

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