Trigger by falling edge

Dependencies:   mbed

Committer:
Neolker
Date:
Thu Apr 05 14:46:02 2018 +0000
Revision:
1:c07b2e3dafe9
Parent:
0:52fa945a47d5
typo fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Neolker 0:52fa945a47d5 1 /*
Neolker 0:52fa945a47d5 2 * -----------------------------------------
Neolker 0:52fa945a47d5 3 * Trigger_LabSat_variant_1 1.0 (2018-04-05)
Neolker 0:52fa945a47d5 4 * -----------------------------------------
Neolker 0:52fa945a47d5 5 * Works well with NUCLEO-F031K6 and NUCLEO-F411RE.
Neolker 0:52fa945a47d5 6 *
Neolker 0:52fa945a47d5 7 * In (D2): ---_------_---
Neolker 0:52fa945a47d5 8 *
Neolker 0:52fa945a47d5 9 * Out (D3): ___--------___
Neolker 0:52fa945a47d5 10 *
Neolker 0:52fa945a47d5 11 * negOut (D4): ---________---
Neolker 0:52fa945a47d5 12 *
Neolker 0:52fa945a47d5 13 * LED (LED1): ___--------___
Neolker 0:52fa945a47d5 14 *
Neolker 0:52fa945a47d5 15 * Copyright (c) 2018, Martin Wolker (neolker@gmail.com)
Neolker 0:52fa945a47d5 16 * All rights reserved.
Neolker 0:52fa945a47d5 17 *
Neolker 0:52fa945a47d5 18 * Redistribution and use in source and binary forms, with or without
Neolker 0:52fa945a47d5 19 * modification, are permitted provided that the following conditions are met:
Neolker 0:52fa945a47d5 20 * - Redistributions of source code must retain the above copyright
Neolker 0:52fa945a47d5 21 * notice, this list of conditions and the following disclaimer.
Neolker 0:52fa945a47d5 22 * - Redistributions in binary form must reproduce the above copyright
Neolker 0:52fa945a47d5 23 * notice, this list of conditions and the following disclaimer in the
Neolker 0:52fa945a47d5 24 * documentation and/or other materials provided with the distribution.
Neolker 0:52fa945a47d5 25 * - Neither the name of Martin Wolker nor the
Neolker 0:52fa945a47d5 26 * names of its contributors may be used to endorse or promote products
Neolker 0:52fa945a47d5 27 * derived from this software without specific prior written permission.
Neolker 0:52fa945a47d5 28 *
Neolker 0:52fa945a47d5 29 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
Neolker 0:52fa945a47d5 30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
Neolker 0:52fa945a47d5 31 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Neolker 0:52fa945a47d5 32 * DISCLAIMED. IN NO EVENT SHALL MARTIN WOLKER BE LIABLE FOR ANY
Neolker 0:52fa945a47d5 33 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
Neolker 0:52fa945a47d5 34 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
Neolker 0:52fa945a47d5 35 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
Neolker 0:52fa945a47d5 36 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Neolker 0:52fa945a47d5 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
Neolker 0:52fa945a47d5 38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Neolker 0:52fa945a47d5 39 */
Neolker 0:52fa945a47d5 40
Neolker 0:52fa945a47d5 41 #include "mbed.h"
Neolker 0:52fa945a47d5 42 #define TRIGGER_IGNORE_LENGTH_MS 500
Neolker 0:52fa945a47d5 43
Neolker 0:52fa945a47d5 44 InterruptIn trigger_in(D2);
Neolker 0:52fa945a47d5 45 DigitalOut trigger_out(D3);
Neolker 0:52fa945a47d5 46 DigitalOut trigger_out_negative(D4);
Neolker 0:52fa945a47d5 47 DigitalOut trigger_led(LED1);
Neolker 0:52fa945a47d5 48
Neolker 0:52fa945a47d5 49 void trigger(void)
Neolker 0:52fa945a47d5 50 {
Neolker 0:52fa945a47d5 51 trigger_out =! trigger_out;
Neolker 0:52fa945a47d5 52 trigger_out_negative =! trigger_out_negative;
Neolker 0:52fa945a47d5 53 trigger_led =! trigger_led;
Neolker 0:52fa945a47d5 54 }
Neolker 0:52fa945a47d5 55
Neolker 0:52fa945a47d5 56 void interrupt(void)
Neolker 0:52fa945a47d5 57 {
Neolker 0:52fa945a47d5 58 trigger();
Neolker 0:52fa945a47d5 59 wait_ms(TRIGGER_IGNORE_LENGTH_MS);
Neolker 0:52fa945a47d5 60 }
Neolker 0:52fa945a47d5 61
Neolker 0:52fa945a47d5 62 int main(void)
Neolker 0:52fa945a47d5 63 {
Neolker 1:c07b2e3dafe9 64 //Trigger interrupt by falling edge
Neolker 0:52fa945a47d5 65 trigger_in.fall(&interrupt);
Neolker 0:52fa945a47d5 66
Neolker 0:52fa945a47d5 67 //Default state
Neolker 0:52fa945a47d5 68 trigger_out = 0;
Neolker 0:52fa945a47d5 69 trigger_out_negative = 1;
Neolker 0:52fa945a47d5 70 trigger_led = 0;
Neolker 0:52fa945a47d5 71
Neolker 0:52fa945a47d5 72 //Endless loop
Neolker 0:52fa945a47d5 73 while(1) { }
Neolker 0:52fa945a47d5 74 }