Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:159abf0f8d1c, 2015-02-26 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |