mbed library sources with internal temperature sensor for nucleo f401

Committer:
elessair
Date:
Sat Jan 17 18:03:58 2015 +0000
Revision:
0:7e2bd16f80af
nucleo f401re internal temperature added

Who changed what in which revision?

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