Charles Tritt / Mbed 2 deprecated TrafficEx

Dependencies:   mbed

Fork of TimeoutEx by Charles Tritt

Committer:
CSTritt
Date:
Mon Oct 09 02:44:42 2017 +0000
Revision:
2:2c03f9b6d286
Parent:
1:2438293c128c
Child:
3:439f58e558e5
Cleaned up comments.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CSTritt 0:3151531e9a31 1 /*
CSTritt 2:2c03f9b6d286 2 Project: TimeoutEX
CSTritt 0:3151531e9a31 3 File: main.cpp
CSTritt 0:3151531e9a31 4
CSTritt 1:2438293c128c 5 Button interrupt sets global config flag. Timeout clears it.Main program
CSTritt 1:2438293c128c 6 flashes red or green LED based on config status.
CSTritt 0:3151531e9a31 7
CSTritt 0:3151531e9a31 8 Created by Dr. C. S. Tritt
CSTritt 1:2438293c128c 9 Last revised: 10/8/17 (v. 1.0)
CSTritt 0:3151531e9a31 10 */
CSTritt 0:3151531e9a31 11 #include "mbed.h"
CSTritt 0:3151531e9a31 12
CSTritt 1:2438293c128c 13 void buttonISR(); // Button ISR declaration.
CSTritt 1:2438293c128c 14 void configOff(); // Configuration mode off declaration.
CSTritt 1:2438293c128c 15
CSTritt 0:3151531e9a31 16 InterruptIn myButton(USER_BUTTON); // Button is normally high. Goes low w/press.
CSTritt 1:2438293c128c 17 Timeout configTime; // TimeOut constructor takes no arguments.
CSTritt 0:3151531e9a31 18
CSTritt 1:2438293c128c 19 DigitalOut redLED(D2); // Red and green LED junctions.
CSTritt 0:3151531e9a31 20 DigitalOut grnLED(D3);
CSTritt 0:3151531e9a31 21
CSTritt 1:2438293c128c 22 bool config = false; // Configuration mode flag.
CSTritt 0:3151531e9a31 23
CSTritt 0:3151531e9a31 24 int main() {
CSTritt 1:2438293c128c 25 redLED = 0; // Turn red & green off at start.
CSTritt 0:3151531e9a31 26 grnLED = 0;
CSTritt 0:3151531e9a31 27
CSTritt 1:2438293c128c 28 myButton.fall(&buttonISR); // Register ISR routine.
CSTritt 1:2438293c128c 29
CSTritt 1:2438293c128c 30 while(true) { // Main loop.
CSTritt 1:2438293c128c 31 if (config) {
CSTritt 1:2438293c128c 32 redLED = !redLED; // Toggle red junction.
CSTritt 1:2438293c128c 33 } else {
CSTritt 1:2438293c128c 34 grnLED = !grnLED; // Toggle green junction.
CSTritt 1:2438293c128c 35 }
CSTritt 0:3151531e9a31 36 wait(0.5); // Pause half a second.
CSTritt 0:3151531e9a31 37 }
CSTritt 1:2438293c128c 38 }
CSTritt 1:2438293c128c 39
CSTritt 1:2438293c128c 40 void buttonISR() { // Sets config status when button falls.
CSTritt 1:2438293c128c 41 config = true; // Set config status.
CSTritt 1:2438293c128c 42 grnLED = 0; // Force green junction off.
CSTritt 1:2438293c128c 43 redLED = 1; // Turn red junction on.
CSTritt 2:2c03f9b6d286 44 configTime.attach(&configOff, 5.0f); // Register callback. 5 sec. delay.
CSTritt 1:2438293c128c 45 }
CSTritt 1:2438293c128c 46
CSTritt 1:2438293c128c 47 void configOff() { // Clears config flag after timeout.
CSTritt 1:2438293c128c 48 config = false; // Clear config flag.
CSTritt 1:2438293c128c 49 redLED = 0; // Force red junction off.
CSTritt 1:2438293c128c 50 grnLED = 1; // Turn green junction on.
CSTritt 0:3151531e9a31 51 }