Blink, remove compiler errors

Dependents:   STM32F031_Blink_Aug17

Fork of mbed-STM32F030F4 by Nothing Special

Committer:
mega64
Date:
Sat Oct 18 02:40:17 2014 +0000
Revision:
0:38ccae254a29
only for STM32F030F4

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 "BusOut.h"
mega64 0:38ccae254a29 17
mega64 0:38ccae254a29 18 namespace mbed {
mega64 0:38ccae254a29 19
mega64 0:38ccae254a29 20 BusOut::BusOut(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 DigitalOut(pins[i]) : 0;
mega64 0:38ccae254a29 25 }
mega64 0:38ccae254a29 26 }
mega64 0:38ccae254a29 27
mega64 0:38ccae254a29 28 BusOut::BusOut(PinName pins[16]) {
mega64 0:38ccae254a29 29 for (int i=0; i<16; i++) {
mega64 0:38ccae254a29 30 _pin[i] = (pins[i] != NC) ? new DigitalOut(pins[i]) : 0;
mega64 0:38ccae254a29 31 }
mega64 0:38ccae254a29 32 }
mega64 0:38ccae254a29 33
mega64 0:38ccae254a29 34 BusOut::~BusOut() {
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 BusOut::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 BusOut::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 #ifdef MBED_OPERATORS
mega64 0:38ccae254a29 61 BusOut& BusOut::operator= (int v) {
mega64 0:38ccae254a29 62 write(v);
mega64 0:38ccae254a29 63 return *this;
mega64 0:38ccae254a29 64 }
mega64 0:38ccae254a29 65
mega64 0:38ccae254a29 66 BusOut& BusOut::operator= (BusOut& rhs) {
mega64 0:38ccae254a29 67 write(rhs.read());
mega64 0:38ccae254a29 68 return *this;
mega64 0:38ccae254a29 69 }
mega64 0:38ccae254a29 70
mega64 0:38ccae254a29 71 BusOut::operator int() {
mega64 0:38ccae254a29 72 return read();
mega64 0:38ccae254a29 73 }
mega64 0:38ccae254a29 74 #endif
mega64 0:38ccae254a29 75
mega64 0:38ccae254a29 76 } // namespace mbed