Demo program for library named SD_PlayerSkeleton of SD card player skeleton. SD カードプレーヤのための骨組みとして使うためのライブラリ SD_PlayerSkeleton の使用例.このプログラムについては,CQ出版社インターフェース誌 2018年7月号で解説している.

Dependencies:   F746_GUI F746_SAI_IO SD_PlayerSkeleton

Committer:
MikamiUitOpen
Date:
Sun Apr 09 12:44:17 2017 +0000
Revision:
19:3c3833ec00d2
Parent:
2:cf42e62a97dc
20

Who changed what in which revision?

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