Integrated program of 4 different kinds of application programs for processing sound signal. 4種類のサウンド信号処理を統合したプログラム.

Dependencies:   F746_GUI F746_SAI_IO FrequencyResponseDrawer SD_PlayerSkeleton UIT_FFT_Real

Committer:
MikamiUitOpen
Date:
Mon Sep 26 07:07:05 2016 +0000
Revision:
2:fcba17e3d573
Parent:
mbed_src_STM/common/BusInOut.cpp@0:224dccbc4edd
3

Who changed what in which revision?

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