Uses a reed switch to detect door state

Dependencies:   mbed

Committer:
User_4574
Date:
Sat Jan 15 13:48:53 2011 +0000
Revision:
0:bc6628a89f6b
Initial Revision

Who changed what in which revision?

UserRevisionLine numberNew 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 }