Dependencies:   beep mbed

Committer:
lauram
Date:
Wed Aug 06 21:14:22 2014 +0000
Revision:
0:d010569706bd
Child:
1:f3758be6979d
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 0:d010569706bd 5 InterruptIn pir(D5);
lauram 0:d010569706bd 6 InterruptIn on(D7);
lauram 0:d010569706bd 7 InterruptIn off(D6);
lauram 0:d010569706bd 8 Beep buzzer(D9);
lauram 0:d010569706bd 9
lauram 0:d010569706bd 10 int flagOn,flagOff,flagPIR=0;
lauram 0:d010569706bd 11 int i = 0;
lauram 0:d010569706bd 12 int alarmOn=0; //State (on/off)
lauram 0:d010569706bd 13
lauram 0:d010569706bd 14 void onInterrupt()
lauram 0:d010569706bd 15 {
lauram 0:d010569706bd 16 flagOn=1;
lauram 0:d010569706bd 17 }
lauram 0:d010569706bd 18
lauram 0:d010569706bd 19 void offInterrupt()
lauram 0:d010569706bd 20 {
lauram 0:d010569706bd 21 flagOff=1;
lauram 0:d010569706bd 22 }
lauram 0:d010569706bd 23
lauram 0:d010569706bd 24 void pirInterrupt()
lauram 0:d010569706bd 25 {
lauram 0:d010569706bd 26 flagPIR=1;
lauram 0:d010569706bd 27 }
lauram 0:d010569706bd 28
lauram 0:d010569706bd 29 int main()
lauram 0:d010569706bd 30 {
lauram 0:d010569706bd 31 // on/off interrupts init
lauram 0:d010569706bd 32 on.rise(&onInterrupt);
lauram 0:d010569706bd 33 off.rise(&offInterrupt);
lauram 0:d010569706bd 34
lauram 0:d010569706bd 35 // pir sensor interrupt init
lauram 0:d010569706bd 36 pir.rise(&pirInterrupt);
lauram 0:d010569706bd 37
lauram 0:d010569706bd 38 // start
lauram 0:d010569706bd 39 PC.printf("Working... ");
lauram 0:d010569706bd 40 while (1) {
lauram 0:d010569706bd 41 if (flagOn) {
lauram 0:d010569706bd 42 PC.printf("Alarm on ");
lauram 0:d010569706bd 43 alarmOn=1;
lauram 0:d010569706bd 44 flagOn = 0; //clear flag
lauram 0:d010569706bd 45 }
lauram 0:d010569706bd 46
lauram 0:d010569706bd 47 if (flagOff) {
lauram 0:d010569706bd 48 PC.printf("Alarm off ");
lauram 0:d010569706bd 49 alarmOn=0;
lauram 0:d010569706bd 50 buzzer.beep(0,0); //Frec(Hz),Time(Sec)
lauram 0:d010569706bd 51 flagOff = 0; //clear flag
lauram 0:d010569706bd 52 }
lauram 0:d010569706bd 53
lauram 0:d010569706bd 54 if (flagPIR) {
lauram 0:d010569706bd 55 if (alarmOn){
lauram 0:d010569706bd 56 buzzer.beep(1000,10); //Frec(Hz),Time(Sec)
lauram 0:d010569706bd 57 }
lauram 0:d010569706bd 58 flagPIR=0; //clear flag
lauram 0:d010569706bd 59 }
lauram 0:d010569706bd 60 __wfi(); //waiting for interrupt
lauram 0:d010569706bd 61 }
lauram 0:d010569706bd 62 }