Audrey Hernandez / Mbed 2 deprecated RelayTimer

Dependencies:   mbed

Committer:
audreyhernandez
Date:
Thu Feb 26 19:02:21 2015 +0000
Revision:
0:159abf0f8d1c
Source code for RelayTimer.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
audreyhernandez 0:159abf0f8d1c 1 #include "mbed.h"
audreyhernandez 0:159abf0f8d1c 2
audreyhernandez 0:159abf0f8d1c 3 #define IOS1 (0x100) // PA_8
audreyhernandez 0:159abf0f8d1c 4 #define IOS2 (0x40) // PA_6
audreyhernandez 0:159abf0f8d1c 5 #define IOS3 (0x80) // PA_7
audreyhernandez 0:159abf0f8d1c 6 #define RGB (0x200) // PA_9
audreyhernandez 0:159abf0f8d1c 7
audreyhernandez 0:159abf0f8d1c 8 Timer timer;
audreyhernandez 0:159abf0f8d1c 9 Serial pc(SERIAL_TX, SERIAL_RX);
audreyhernandez 0:159abf0f8d1c 10 DigitalIn button(USER_BUTTON);
audreyhernandez 0:159abf0f8d1c 11 PortOut GPIO1 (PortA, IOS1);
audreyhernandez 0:159abf0f8d1c 12 PortOut GPIO2 (PortA, IOS2);
audreyhernandez 0:159abf0f8d1c 13 PortOut GPIO3 (PortA, IOS3);
audreyhernandez 0:159abf0f8d1c 14 PortOut cLED (PortA, RGB);
audreyhernandez 0:159abf0f8d1c 15 DigitalOut LED(LED1);
audreyhernandez 0:159abf0f8d1c 16 int currentTime;
audreyhernandez 0:159abf0f8d1c 17 bool latch;
audreyhernandez 0:159abf0f8d1c 18
audreyhernandez 0:159abf0f8d1c 19 int main()
audreyhernandez 0:159abf0f8d1c 20 {
audreyhernandez 0:159abf0f8d1c 21 latch = false;
audreyhernandez 0:159abf0f8d1c 22 while(1)
audreyhernandez 0:159abf0f8d1c 23 {
audreyhernandez 0:159abf0f8d1c 24 // check button if pressed start timer and latch in.
audreyhernandez 0:159abf0f8d1c 25 if ((button == 0) && (latch == false))
audreyhernandez 0:159abf0f8d1c 26 {
audreyhernandez 0:159abf0f8d1c 27 timer.reset();
audreyhernandez 0:159abf0f8d1c 28 timer.start();
audreyhernandez 0:159abf0f8d1c 29 latch = true;
audreyhernandez 0:159abf0f8d1c 30 }
audreyhernandez 0:159abf0f8d1c 31
audreyhernandez 0:159abf0f8d1c 32 if (latch == true)
audreyhernandez 0:159abf0f8d1c 33 {
audreyhernandez 0:159abf0f8d1c 34 LED = 1;
audreyhernandez 0:159abf0f8d1c 35 currentTime = timer.read_ms();
audreyhernandez 0:159abf0f8d1c 36 //pc.printf("TIMER IS AT %d \n\r", currentTime);
audreyhernandez 0:159abf0f8d1c 37 //wait(1);
audreyhernandez 0:159abf0f8d1c 38
audreyhernandez 0:159abf0f8d1c 39 // set GPIO1 state
audreyhernandez 0:159abf0f8d1c 40 if ((currentTime >= 0) && (currentTime < 10000))
audreyhernandez 0:159abf0f8d1c 41 {
audreyhernandez 0:159abf0f8d1c 42 GPIO1 = IOS1;
audreyhernandez 0:159abf0f8d1c 43 cLED = RGB;
audreyhernandez 0:159abf0f8d1c 44 }
audreyhernandez 0:159abf0f8d1c 45 else
audreyhernandez 0:159abf0f8d1c 46 {
audreyhernandez 0:159abf0f8d1c 47 GPIO1 = 0;
audreyhernandez 0:159abf0f8d1c 48 }
audreyhernandez 0:159abf0f8d1c 49
audreyhernandez 0:159abf0f8d1c 50 // set GPIO2 state
audreyhernandez 0:159abf0f8d1c 51 if ((currentTime >= 3000) && (currentTime < 13000))
audreyhernandez 0:159abf0f8d1c 52 {
audreyhernandez 0:159abf0f8d1c 53 GPIO2 = IOS2;
audreyhernandez 0:159abf0f8d1c 54 }
audreyhernandez 0:159abf0f8d1c 55 else
audreyhernandez 0:159abf0f8d1c 56 {
audreyhernandez 0:159abf0f8d1c 57 GPIO2 = 0;
audreyhernandez 0:159abf0f8d1c 58 }
audreyhernandez 0:159abf0f8d1c 59
audreyhernandez 0:159abf0f8d1c 60 // set GPIO3 state
audreyhernandez 0:159abf0f8d1c 61 if ((currentTime >= 12000) && (currentTime < 22000))
audreyhernandez 0:159abf0f8d1c 62 {
audreyhernandez 0:159abf0f8d1c 63 GPIO3 = IOS3;
audreyhernandez 0:159abf0f8d1c 64 }
audreyhernandez 0:159abf0f8d1c 65 else
audreyhernandez 0:159abf0f8d1c 66 {
audreyhernandez 0:159abf0f8d1c 67 GPIO3 = 0;
audreyhernandez 0:159abf0f8d1c 68 }
audreyhernandez 0:159abf0f8d1c 69
audreyhernandez 0:159abf0f8d1c 70 // check if sequence is over, stop timer and reset latch.
audreyhernandez 0:159abf0f8d1c 71 if (currentTime > 22000)
audreyhernandez 0:159abf0f8d1c 72 {
audreyhernandez 0:159abf0f8d1c 73 latch = false;
audreyhernandez 0:159abf0f8d1c 74 LED = 0;
audreyhernandez 0:159abf0f8d1c 75 timer.stop();
audreyhernandez 0:159abf0f8d1c 76 }
audreyhernandez 0:159abf0f8d1c 77 }
audreyhernandez 0:159abf0f8d1c 78 }
audreyhernandez 0:159abf0f8d1c 79 }