Dependencies:   beep mbed

Committer:
lauram
Date:
Fri Aug 08 01:40:17 2014 +0000
Revision:
1:f3758be6979d
Parent:
0:d010569706bd
starting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lauram 0:d010569706bd 1 #include "mbed.h"
lauram 0:d010569706bd 2 #include "beep.h"
lauram 0:d010569706bd 3
lauram 0:d010569706bd 4 Serial PC(USBTX, USBRX);
lauram 1:f3758be6979d 5
lauram 1:f3758be6979d 6 //Sensor
lauram 0:d010569706bd 7 InterruptIn pir(D5);
lauram 1:f3758be6979d 8
lauram 1:f3758be6979d 9 //Buttons
lauram 0:d010569706bd 10 InterruptIn on(D7);
lauram 0:d010569706bd 11 InterruptIn off(D6);
lauram 1:f3758be6979d 12
lauram 1:f3758be6979d 13 //Buzzer
lauram 0:d010569706bd 14 Beep buzzer(D9);
lauram 0:d010569706bd 15
lauram 0:d010569706bd 16 int flagOn,flagOff,flagPIR=0;
lauram 0:d010569706bd 17 int i = 0;
lauram 0:d010569706bd 18 int alarmOn=0; //State (on/off)
lauram 0:d010569706bd 19
lauram 0:d010569706bd 20 void onInterrupt()
lauram 0:d010569706bd 21 {
lauram 0:d010569706bd 22 flagOn=1;
lauram 0:d010569706bd 23 }
lauram 0:d010569706bd 24
lauram 0:d010569706bd 25 void offInterrupt()
lauram 0:d010569706bd 26 {
lauram 0:d010569706bd 27 flagOff=1;
lauram 0:d010569706bd 28 }
lauram 0:d010569706bd 29
lauram 0:d010569706bd 30 void pirInterrupt()
lauram 0:d010569706bd 31 {
lauram 0:d010569706bd 32 flagPIR=1;
lauram 0:d010569706bd 33 }
lauram 0:d010569706bd 34
lauram 0:d010569706bd 35 int main()
lauram 0:d010569706bd 36 {
lauram 0:d010569706bd 37 // on/off interrupts init
lauram 0:d010569706bd 38 on.rise(&onInterrupt);
lauram 0:d010569706bd 39 off.rise(&offInterrupt);
lauram 0:d010569706bd 40
lauram 0:d010569706bd 41 // pir sensor interrupt init
lauram 0:d010569706bd 42 pir.rise(&pirInterrupt);
lauram 0:d010569706bd 43
lauram 0:d010569706bd 44 // start
lauram 0:d010569706bd 45 PC.printf("Working... ");
lauram 0:d010569706bd 46 while (1) {
lauram 0:d010569706bd 47 if (flagOn) {
lauram 0:d010569706bd 48 PC.printf("Alarm on ");
lauram 0:d010569706bd 49 alarmOn=1;
lauram 0:d010569706bd 50 flagOn = 0; //clear flag
lauram 0:d010569706bd 51 }
lauram 0:d010569706bd 52
lauram 0:d010569706bd 53 if (flagOff) {
lauram 0:d010569706bd 54 PC.printf("Alarm off ");
lauram 0:d010569706bd 55 alarmOn=0;
lauram 0:d010569706bd 56 buzzer.beep(0,0); //Frec(Hz),Time(Sec)
lauram 0:d010569706bd 57 flagOff = 0; //clear flag
lauram 0:d010569706bd 58 }
lauram 0:d010569706bd 59
lauram 0:d010569706bd 60 if (flagPIR) {
lauram 0:d010569706bd 61 if (alarmOn){
lauram 0:d010569706bd 62 buzzer.beep(1000,10); //Frec(Hz),Time(Sec)
lauram 0:d010569706bd 63 }
lauram 0:d010569706bd 64 flagPIR=0; //clear flag
lauram 0:d010569706bd 65 }
lauram 0:d010569706bd 66 __wfi(); //waiting for interrupt
lauram 0:d010569706bd 67 }
lauram 0:d010569706bd 68 }