Basic fading in and out of leds with light sensor.

Dependencies:   mbed

Committer:
mturner5
Date:
Mon Sep 19 03:24:58 2016 +0000
Revision:
0:cf7af2656659
Basic v1

Who changed what in which revision?

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