Dependencies:   beep mbed

Revision:
0:d010569706bd
Child:
1:f3758be6979d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Aug 06 21:14:22 2014 +0000
@@ -0,0 +1,62 @@
+#include "mbed.h"
+#include "beep.h"
+
+Serial PC(USBTX, USBRX);
+InterruptIn pir(D5);
+InterruptIn on(D7);
+InterruptIn off(D6);
+Beep buzzer(D9);
+
+int flagOn,flagOff,flagPIR=0;
+int i = 0;
+int alarmOn=0;  //State (on/off)
+
+void  onInterrupt() 
+{
+    flagOn=1;
+}
+
+void  offInterrupt()
+{
+    flagOff=1;
+}
+
+void pirInterrupt()
+{
+    flagPIR=1;
+}
+
+int main()
+{
+    // on/off interrupts init          
+    on.rise(&onInterrupt);
+    off.rise(&offInterrupt);    
+    
+    // pir sensor interrupt init
+    pir.rise(&pirInterrupt);
+    
+    // start
+    PC.printf("Working... ");
+    while (1) {
+        if (flagOn) {
+            PC.printf("Alarm on ");
+            alarmOn=1;
+            flagOn = 0; //clear flag
+        }
+        
+        if (flagOff) {
+            PC.printf("Alarm off ");
+            alarmOn=0;
+            buzzer.beep(0,0); //Frec(Hz),Time(Sec)
+            flagOff = 0; //clear flag
+        }
+
+        if (flagPIR) {
+            if (alarmOn){
+                buzzer.beep(1000,10); //Frec(Hz),Time(Sec)
+            }
+            flagPIR=0;  //clear flag
+        }
+        __wfi(); //waiting for interrupt 
+    }
+}
\ No newline at end of file