Dependencies:   MMA8452 N5110 PowerControl beep mbed

Committer:
stevenle93
Date:
Sat May 09 22:59:15 2015 +0000
Revision:
8:aebb468546c5
Parent:
5:c0a58a6916f2
Child:
9:522f9311ff4b
Change: detach the tickers after the game.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stevenle93 2:57d1ed1f0ad3 1 /**
stevenle93 2:57d1ed1f0ad3 2 @ file Clock.h
stevenle93 2:57d1ed1f0ad3 3
stevenle93 2:57d1ed1f0ad3 4 @ brief Header file of a count down clock containing Ticker on RTC and display time on N5110 Nokia Screen
stevenle93 2:57d1ed1f0ad3 5 */
stevenle93 2:57d1ed1f0ad3 6
stevenle93 2:57d1ed1f0ad3 7 #ifndef CLOCK_H
stevenle93 2:57d1ed1f0ad3 8 #define CLOCK_H
stevenle93 2:57d1ed1f0ad3 9
stevenle93 2:57d1ed1f0ad3 10 #include "mbed.h"
stevenle93 2:57d1ed1f0ad3 11 #include "N5110.h"
stevenle93 2:57d1ed1f0ad3 12 #include "MMA8452.h"
stevenle93 5:c0a58a6916f2 13 #include "beep.h"
stevenle93 2:57d1ed1f0ad3 14
stevenle93 3:1974db5993ef 15 Ticker timer;
stevenle93 2:57d1ed1f0ad3 16 int CClock;
stevenle93 3:1974db5993ef 17 DigitalOut led(p22);
stevenle93 3:1974db5993ef 18 BusOut leds(LED1, LED2, LED3, LED4);
stevenle93 5:c0a58a6916f2 19 Beep beep(p26);
stevenle93 3:1974db5993ef 20
stevenle93 8:aebb468546c5 21 int timerFlag = 0;
stevenle93 8:aebb468546c5 22
stevenle93 8:aebb468546c5 23 void timerExpired()
stevenle93 8:aebb468546c5 24 {
stevenle93 8:aebb468546c5 25 timerFlag = 1; //Set flag for timer of the countdown
stevenle93 8:aebb468546c5 26 }
stevenle93 8:aebb468546c5 27
stevenle93 8:aebb468546c5 28 class Clock
stevenle93 8:aebb468546c5 29 {
stevenle93 8:aebb468546c5 30 public:
stevenle93 8:aebb468546c5 31 void flashLed();
stevenle93 8:aebb468546c5 32 void knightrunner();
stevenle93 8:aebb468546c5 33 void countDown();
stevenle93 8:aebb468546c5 34 void timeout();
stevenle93 8:aebb468546c5 35 };
stevenle93 8:aebb468546c5 36
stevenle93 8:aebb468546c5 37 void Clock::knightrunner()
stevenle93 3:1974db5993ef 38 {
stevenle93 3:1974db5993ef 39 int t = 5;
stevenle93 8:aebb468546c5 40 while(t > 0) {
stevenle93 3:1974db5993ef 41
stevenle93 3:1974db5993ef 42 for(int i=1; i<=8; i=i*2) {
stevenle93 3:1974db5993ef 43 leds = i;
stevenle93 3:1974db5993ef 44 wait (0.05);
stevenle93 3:1974db5993ef 45 }
stevenle93 3:1974db5993ef 46 for(int j=4; j>=2; j=j/2) {
stevenle93 3:1974db5993ef 47 leds = j;
stevenle93 3:1974db5993ef 48 wait(0.05);
stevenle93 3:1974db5993ef 49 }
stevenle93 3:1974db5993ef 50 t = t - 2;
stevenle93 3:1974db5993ef 51 }
stevenle93 3:1974db5993ef 52 }
stevenle93 3:1974db5993ef 53
stevenle93 8:aebb468546c5 54 void Clock::flashLed()
stevenle93 3:1974db5993ef 55 {
stevenle93 3:1974db5993ef 56 led =!led;
stevenle93 3:1974db5993ef 57 }
stevenle93 3:1974db5993ef 58
stevenle93 3:1974db5993ef 59 void Clock::countDown()
stevenle93 2:57d1ed1f0ad3 60 {
stevenle93 3:1974db5993ef 61 if (timerFlag) {
stevenle93 3:1974db5993ef 62 timerFlag = 0;
stevenle93 3:1974db5993ef 63 if (CClock > 10) {
stevenle93 3:1974db5993ef 64 CClock = CClock - 1;
stevenle93 3:1974db5993ef 65 char Clockbuffer[14];
stevenle93 3:1974db5993ef 66 sprintf(Clockbuffer," %d", CClock);
stevenle93 2:57d1ed1f0ad3 67 lcd.printString(Clockbuffer,33,2);
stevenle93 3:1974db5993ef 68 } else if (CClock > 0) {
stevenle93 3:1974db5993ef 69 CClock = CClock - 1;
stevenle93 3:1974db5993ef 70 char Clockbuffer[14];
stevenle93 3:1974db5993ef 71 sprintf(Clockbuffer," %d", CClock);
stevenle93 3:1974db5993ef 72 lcd.printString(Clockbuffer,39,2);
stevenle93 5:c0a58a6916f2 73 beep.beep(1000,0.2);
stevenle93 5:c0a58a6916f2 74 wait(0.1);
stevenle93 5:c0a58a6916f2 75 beep.beep(10000,0.2);
stevenle93 5:c0a58a6916f2 76 wait(0.1);
stevenle93 5:c0a58a6916f2 77 beep.beep(600,0.2);
stevenle93 3:1974db5993ef 78 flashLed();
stevenle93 2:57d1ed1f0ad3 79 }
stevenle93 3:1974db5993ef 80 }
stevenle93 3:1974db5993ef 81 }
stevenle93 3:1974db5993ef 82
stevenle93 3:1974db5993ef 83 void Clock::timeout()
stevenle93 3:1974db5993ef 84 {
stevenle93 3:1974db5993ef 85 lcd.clear();
stevenle93 3:1974db5993ef 86 lcd.printString("Time Out",16,3);
stevenle93 3:1974db5993ef 87 knightrunner();
stevenle93 3:1974db5993ef 88 CClock = CClock - 1;
stevenle93 3:1974db5993ef 89 leds = 0;
stevenle93 2:57d1ed1f0ad3 90 }
stevenle93 2:57d1ed1f0ad3 91
stevenle93 2:57d1ed1f0ad3 92 #endif