dev01 Brautlecht / mbed-STM32F030F4

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 #ifndef MBED_BUSIN_H
mega64 0:38ccae254a29 17 #define MBED_BUSIN_H
mega64 0:38ccae254a29 18
mega64 0:38ccae254a29 19 #include "platform.h"
mega64 0:38ccae254a29 20 #include "DigitalIn.h"
mega64 0:38ccae254a29 21
mega64 0:38ccae254a29 22 namespace mbed {
mega64 0:38ccae254a29 23
mega64 0:38ccae254a29 24 /** A digital input bus, used for reading the state of a collection of pins
mega64 0:38ccae254a29 25 */
mega64 0:38ccae254a29 26 class BusIn {
mega64 0:38ccae254a29 27
mega64 0:38ccae254a29 28 public:
mega64 0:38ccae254a29 29 /* Group: Configuration Methods */
mega64 0:38ccae254a29 30
mega64 0:38ccae254a29 31 /** Create an BusIn, connected to the specified pins
mega64 0:38ccae254a29 32 *
mega64 0:38ccae254a29 33 * @param <n> DigitalIn pin to connect to bus bit <n> (p5-p30, NC)
mega64 0:38ccae254a29 34 *
mega64 0:38ccae254a29 35 * @note
mega64 0:38ccae254a29 36 * It is only required to specify as many pin variables as is required
mega64 0:38ccae254a29 37 * for the bus; the rest will default to NC (not connected)
mega64 0:38ccae254a29 38 */
mega64 0:38ccae254a29 39 BusIn(PinName p0, PinName p1 = NC, PinName p2 = NC, PinName p3 = NC,
mega64 0:38ccae254a29 40 PinName p4 = NC, PinName p5 = NC, PinName p6 = NC, PinName p7 = NC,
mega64 0:38ccae254a29 41 PinName p8 = NC, PinName p9 = NC, PinName p10 = NC, PinName p11 = NC,
mega64 0:38ccae254a29 42 PinName p12 = NC, PinName p13 = NC, PinName p14 = NC, PinName p15 = NC);
mega64 0:38ccae254a29 43
mega64 0:38ccae254a29 44 BusIn(PinName pins[16]);
mega64 0:38ccae254a29 45
mega64 0:38ccae254a29 46 virtual ~BusIn();
mega64 0:38ccae254a29 47
mega64 0:38ccae254a29 48 /** Read the value of the input bus
mega64 0:38ccae254a29 49 *
mega64 0:38ccae254a29 50 * @returns
mega64 0:38ccae254a29 51 * An integer with each bit corresponding to the value read from the associated DigitalIn pin
mega64 0:38ccae254a29 52 */
mega64 0:38ccae254a29 53 int read();
mega64 0:38ccae254a29 54
mega64 0:38ccae254a29 55 /** Set the input pin mode
mega64 0:38ccae254a29 56 *
mega64 0:38ccae254a29 57 * @param mode PullUp, PullDown, PullNone
mega64 0:38ccae254a29 58 */
mega64 0:38ccae254a29 59 void mode(PinMode pull);
mega64 0:38ccae254a29 60
mega64 0:38ccae254a29 61 #ifdef MBED_OPERATORS
mega64 0:38ccae254a29 62 /** A shorthand for read()
mega64 0:38ccae254a29 63 */
mega64 0:38ccae254a29 64 operator int();
mega64 0:38ccae254a29 65 #endif
mega64 0:38ccae254a29 66
mega64 0:38ccae254a29 67 protected:
mega64 0:38ccae254a29 68 DigitalIn* _pin[16];
mega64 0:38ccae254a29 69
mega64 0:38ccae254a29 70 /* disallow copy constructor and assignment operators */
mega64 0:38ccae254a29 71 private:
mega64 0:38ccae254a29 72 BusIn(const BusIn&);
mega64 0:38ccae254a29 73 BusIn & operator = (const BusIn&);
mega64 0:38ccae254a29 74 };
mega64 0:38ccae254a29 75
mega64 0:38ccae254a29 76 } // namespace mbed
mega64 0:38ccae254a29 77
mega64 0:38ccae254a29 78 #endif