Næþ'n Lasseter
/
DoorTimer
Uses a reed switch to detect door state
main.cpp@0:bc6628a89f6b, 2011-01-15 (annotated)
- Committer:
- User_4574
- Date:
- Sat Jan 15 13:48:53 2011 +0000
- Revision:
- 0:bc6628a89f6b
Initial Revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
User_4574 | 0:bc6628a89f6b | 1 | #include "mbed.h" |
User_4574 | 0:bc6628a89f6b | 2 | |
User_4574 | 0:bc6628a89f6b | 3 | Timer t; |
User_4574 | 0:bc6628a89f6b | 4 | DigitalOut idle(LED1); |
User_4574 | 0:bc6628a89f6b | 5 | DigitalOut busy(LED2); |
User_4574 | 0:bc6628a89f6b | 6 | DigitalOut open(p10); |
User_4574 | 0:bc6628a89f6b | 7 | InterruptIn start(p15); |
User_4574 | 0:bc6628a89f6b | 8 | Serial pc(USBTX, USBRX); |
User_4574 | 0:bc6628a89f6b | 9 | |
User_4574 | 0:bc6628a89f6b | 10 | int led=0; |
User_4574 | 0:bc6628a89f6b | 11 | |
User_4574 | 0:bc6628a89f6b | 12 | void onfall() { |
User_4574 | 0:bc6628a89f6b | 13 | pc.printf("Door Opened... "); |
User_4574 | 0:bc6628a89f6b | 14 | t.start(); |
User_4574 | 0:bc6628a89f6b | 15 | open=1; |
User_4574 | 0:bc6628a89f6b | 16 | idle=0; |
User_4574 | 0:bc6628a89f6b | 17 | led=1; |
User_4574 | 0:bc6628a89f6b | 18 | } |
User_4574 | 0:bc6628a89f6b | 19 | |
User_4574 | 0:bc6628a89f6b | 20 | void onrise() { |
User_4574 | 0:bc6628a89f6b | 21 | t.stop(); |
User_4574 | 0:bc6628a89f6b | 22 | open=0; |
User_4574 | 0:bc6628a89f6b | 23 | pc.printf("Door Closed at %f\r\n", t.read()); |
User_4574 | 0:bc6628a89f6b | 24 | t.reset(); |
User_4574 | 0:bc6628a89f6b | 25 | busy=0; |
User_4574 | 0:bc6628a89f6b | 26 | led=0; |
User_4574 | 0:bc6628a89f6b | 27 | } |
User_4574 | 0:bc6628a89f6b | 28 | |
User_4574 | 0:bc6628a89f6b | 29 | int main() { |
User_4574 | 0:bc6628a89f6b | 30 | open=busy=idle=0; |
User_4574 | 0:bc6628a89f6b | 31 | start.fall(&onfall); |
User_4574 | 0:bc6628a89f6b | 32 | start.rise(&onrise); |
User_4574 | 0:bc6628a89f6b | 33 | while(1) { |
User_4574 | 0:bc6628a89f6b | 34 | if(led) { |
User_4574 | 0:bc6628a89f6b | 35 | busy = !busy; |
User_4574 | 0:bc6628a89f6b | 36 | } else { |
User_4574 | 0:bc6628a89f6b | 37 | idle = !idle; |
User_4574 | 0:bc6628a89f6b | 38 | } |
User_4574 | 0:bc6628a89f6b | 39 | wait(1); |
User_4574 | 0:bc6628a89f6b | 40 | } |
User_4574 | 0:bc6628a89f6b | 41 | } |