Dependencies:   MMA8452 N5110 PowerControl beep mbed

Committer:
stevenle93
Date:
Mon May 04 15:55:32 2015 +0000
Revision:
3:1974db5993ef
Parent:
2:57d1ed1f0ad3
Child:
5:c0a58a6916f2
The changes include: FSM for game menu, gamerule() has three difficulties, difference Ticker for clock count down and time interval for reading sensor data.

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 2:57d1ed1f0ad3 13
stevenle93 3:1974db5993ef 14 Ticker timer;
stevenle93 2:57d1ed1f0ad3 15 int CClock;
stevenle93 3:1974db5993ef 16 DigitalOut led(p22);
stevenle93 3:1974db5993ef 17 BusOut leds(LED1, LED2, LED3, LED4);
stevenle93 3:1974db5993ef 18
stevenle93 3:1974db5993ef 19 void knightrunner()
stevenle93 3:1974db5993ef 20 {
stevenle93 3:1974db5993ef 21 int t = 5;
stevenle93 3:1974db5993ef 22 while(t > 0){
stevenle93 3:1974db5993ef 23
stevenle93 3:1974db5993ef 24 for(int i=1; i<=8; i=i*2) {
stevenle93 3:1974db5993ef 25 leds = i;
stevenle93 3:1974db5993ef 26 wait (0.05);
stevenle93 3:1974db5993ef 27 }
stevenle93 3:1974db5993ef 28 for(int j=4; j>=2; j=j/2) {
stevenle93 3:1974db5993ef 29 leds = j;
stevenle93 3:1974db5993ef 30 wait(0.05);
stevenle93 3:1974db5993ef 31 }
stevenle93 3:1974db5993ef 32 t = t - 2;
stevenle93 3:1974db5993ef 33 }
stevenle93 3:1974db5993ef 34 }
stevenle93 3:1974db5993ef 35
stevenle93 3:1974db5993ef 36 void flashLed()
stevenle93 3:1974db5993ef 37 {
stevenle93 3:1974db5993ef 38 led =!led;
stevenle93 3:1974db5993ef 39 }
stevenle93 3:1974db5993ef 40
stevenle93 3:1974db5993ef 41 int timerFlag = 0;
stevenle93 3:1974db5993ef 42
stevenle93 3:1974db5993ef 43 void timerExpired()
stevenle93 3:1974db5993ef 44 {
stevenle93 3:1974db5993ef 45 timerFlag = 1; //Set flag for timer of the countdown
stevenle93 3:1974db5993ef 46 }
stevenle93 2:57d1ed1f0ad3 47
stevenle93 2:57d1ed1f0ad3 48 class Clock
stevenle93 2:57d1ed1f0ad3 49 {
stevenle93 2:57d1ed1f0ad3 50 private:
stevenle93 2:57d1ed1f0ad3 51
stevenle93 2:57d1ed1f0ad3 52 Ticker timer;
stevenle93 2:57d1ed1f0ad3 53
stevenle93 2:57d1ed1f0ad3 54 public:
stevenle93 3:1974db5993ef 55 void countDown();
stevenle93 3:1974db5993ef 56 void timeout();
stevenle93 2:57d1ed1f0ad3 57 };
stevenle93 2:57d1ed1f0ad3 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 //lcd.clear();
stevenle93 3:1974db5993ef 70 CClock = CClock - 1;
stevenle93 3:1974db5993ef 71 char Clockbuffer[14];
stevenle93 3:1974db5993ef 72 sprintf(Clockbuffer," %d", CClock);
stevenle93 3:1974db5993ef 73 lcd.printString(Clockbuffer,39,2);
stevenle93 3:1974db5993ef 74 flashLed();
stevenle93 2:57d1ed1f0ad3 75 }
stevenle93 3:1974db5993ef 76 }
stevenle93 3:1974db5993ef 77 }
stevenle93 3:1974db5993ef 78
stevenle93 3:1974db5993ef 79 void Clock::timeout()
stevenle93 3:1974db5993ef 80 {
stevenle93 3:1974db5993ef 81 lcd.clear();
stevenle93 3:1974db5993ef 82 lcd.printString("Time Out",16,3);
stevenle93 3:1974db5993ef 83 knightrunner();
stevenle93 3:1974db5993ef 84 CClock = CClock - 1;
stevenle93 3:1974db5993ef 85 leds = 0;
stevenle93 2:57d1ed1f0ad3 86 }
stevenle93 2:57d1ed1f0ad3 87
stevenle93 2:57d1ed1f0ad3 88 #endif