This is a repository for all my programs or modified programs.

Committer:
mturner5
Date:
Sun Sep 11 23:48:09 2016 +0000
Revision:
0:72480818e4a9
Made delays for the LEDS and button presses

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mturner5 0:72480818e4a9 1 /* mbed Microcontroller Library
mturner5 0:72480818e4a9 2 * Copyright (c) 2006-2013 ARM Limited
mturner5 0:72480818e4a9 3 *
mturner5 0:72480818e4a9 4 * Licensed under the Apache License, Version 2.0 (the "License");
mturner5 0:72480818e4a9 5 * you may not use this file except in compliance with the License.
mturner5 0:72480818e4a9 6 * You may obtain a copy of the License at
mturner5 0:72480818e4a9 7 *
mturner5 0:72480818e4a9 8 * http://www.apache.org/licenses/LICENSE-2.0
mturner5 0:72480818e4a9 9 *
mturner5 0:72480818e4a9 10 * Unless required by applicable law or agreed to in writing, software
mturner5 0:72480818e4a9 11 * distributed under the License is distributed on an "AS IS" BASIS,
mturner5 0:72480818e4a9 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mturner5 0:72480818e4a9 13 * See the License for the specific language governing permissions and
mturner5 0:72480818e4a9 14 * limitations under the License.
mturner5 0:72480818e4a9 15 */
mturner5 0:72480818e4a9 16 #ifndef MBED_DIGITALIN_H
mturner5 0:72480818e4a9 17 #define MBED_DIGITALIN_H
mturner5 0:72480818e4a9 18
mturner5 0:72480818e4a9 19 #include "platform.h"
mturner5 0:72480818e4a9 20
mturner5 0:72480818e4a9 21 #include "gpio_api.h"
mturner5 0:72480818e4a9 22
mturner5 0:72480818e4a9 23 namespace mbed {
mturner5 0:72480818e4a9 24
mturner5 0:72480818e4a9 25 /** A digital input, used for reading the state of a pin
mturner5 0:72480818e4a9 26 *
mturner5 0:72480818e4a9 27 * Example:
mturner5 0:72480818e4a9 28 * @code
mturner5 0:72480818e4a9 29 * // Flash an LED while a DigitalIn is true
mturner5 0:72480818e4a9 30 *
mturner5 0:72480818e4a9 31 * #include "mbed.h"
mturner5 0:72480818e4a9 32 *
mturner5 0:72480818e4a9 33 * DigitalIn enable(p5);
mturner5 0:72480818e4a9 34 * DigitalOut led(LED1);
mturner5 0:72480818e4a9 35 *
mturner5 0:72480818e4a9 36 * int main() {
mturner5 0:72480818e4a9 37 * while(1) {
mturner5 0:72480818e4a9 38 * if(enable) {
mturner5 0:72480818e4a9 39 * led = !led;
mturner5 0:72480818e4a9 40 * }
mturner5 0:72480818e4a9 41 * wait(0.25);
mturner5 0:72480818e4a9 42 * }
mturner5 0:72480818e4a9 43 * }
mturner5 0:72480818e4a9 44 * @endcode
mturner5 0:72480818e4a9 45 */
mturner5 0:72480818e4a9 46 class DigitalIn {
mturner5 0:72480818e4a9 47
mturner5 0:72480818e4a9 48 public:
mturner5 0:72480818e4a9 49 /** Create a DigitalIn connected to the specified pin
mturner5 0:72480818e4a9 50 *
mturner5 0:72480818e4a9 51 * @param pin DigitalIn pin to connect to
mturner5 0:72480818e4a9 52 */
mturner5 0:72480818e4a9 53 DigitalIn(PinName pin) : gpio() {
mturner5 0:72480818e4a9 54 gpio_init_in(&gpio, pin);
mturner5 0:72480818e4a9 55 }
mturner5 0:72480818e4a9 56
mturner5 0:72480818e4a9 57 /** Create a DigitalIn connected to the specified pin
mturner5 0:72480818e4a9 58 *
mturner5 0:72480818e4a9 59 * @param pin DigitalIn pin to connect to
mturner5 0:72480818e4a9 60 * @param mode the initial mode of the pin
mturner5 0:72480818e4a9 61 */
mturner5 0:72480818e4a9 62 DigitalIn(PinName pin, PinMode mode) : gpio() {
mturner5 0:72480818e4a9 63 gpio_init_in_ex(&gpio, pin, mode);
mturner5 0:72480818e4a9 64 }
mturner5 0:72480818e4a9 65 /** Read the input, represented as 0 or 1 (int)
mturner5 0:72480818e4a9 66 *
mturner5 0:72480818e4a9 67 * @returns
mturner5 0:72480818e4a9 68 * An integer representing the state of the input pin,
mturner5 0:72480818e4a9 69 * 0 for logical 0, 1 for logical 1
mturner5 0:72480818e4a9 70 */
mturner5 0:72480818e4a9 71 int read() {
mturner5 0:72480818e4a9 72 return gpio_read(&gpio);
mturner5 0:72480818e4a9 73 }
mturner5 0:72480818e4a9 74
mturner5 0:72480818e4a9 75 /** Set the input pin mode
mturner5 0:72480818e4a9 76 *
mturner5 0:72480818e4a9 77 * @param mode PullUp, PullDown, PullNone, OpenDrain
mturner5 0:72480818e4a9 78 */
mturner5 0:72480818e4a9 79 void mode(PinMode pull) {
mturner5 0:72480818e4a9 80 gpio_mode(&gpio, pull);
mturner5 0:72480818e4a9 81 }
mturner5 0:72480818e4a9 82
mturner5 0:72480818e4a9 83 #ifdef MBED_OPERATORS
mturner5 0:72480818e4a9 84 /** An operator shorthand for read()
mturner5 0:72480818e4a9 85 */
mturner5 0:72480818e4a9 86 operator int() {
mturner5 0:72480818e4a9 87 return read();
mturner5 0:72480818e4a9 88 }
mturner5 0:72480818e4a9 89 #endif
mturner5 0:72480818e4a9 90
mturner5 0:72480818e4a9 91 protected:
mturner5 0:72480818e4a9 92 gpio_t gpio;
mturner5 0:72480818e4a9 93 };
mturner5 0:72480818e4a9 94
mturner5 0:72480818e4a9 95 } // namespace mbed
mturner5 0:72480818e4a9 96
mturner5 0:72480818e4a9 97 #endif