Dependencies:   MMA8452 N5110 PowerControl beep mbed

Clock.h

Committer:
stevenle93
Date:
2015-05-04
Revision:
3:1974db5993ef
Parent:
2:57d1ed1f0ad3
Child:
5:c0a58a6916f2

File content as of revision 3:1974db5993ef:

/**
@ file Clock.h

@ brief Header file of a count down clock containing Ticker on RTC and display time on N5110 Nokia Screen
*/

#ifndef CLOCK_H
#define CLOCK_H

#include "mbed.h"
#include "N5110.h"
#include "MMA8452.h"

Ticker timer;
int CClock;
DigitalOut led(p22);
BusOut leds(LED1, LED2, LED3, LED4);

void knightrunner()
{
    int t = 5;
    while(t > 0){

        for(int i=1; i<=8; i=i*2) {
            leds = i;
            wait (0.05);
        }
        for(int j=4; j>=2; j=j/2) {
            leds = j;
            wait(0.05);
        }
        t = t - 2;
    }
}

void flashLed()
{
    led =!led;
}

int timerFlag = 0;

void timerExpired()
{
    timerFlag = 1; //Set flag for timer of the countdown
}

class Clock
{
private:

    Ticker timer;

public:
    void countDown();
    void timeout();
};

void Clock::countDown()
{
    if (timerFlag) {
        timerFlag = 0;
        if (CClock > 10) {
            CClock = CClock - 1;
            char Clockbuffer[14];
            sprintf(Clockbuffer," %d", CClock);
            lcd.printString(Clockbuffer,33,2);
        } else if (CClock > 0) {
            //lcd.clear();
            CClock = CClock - 1;
            char Clockbuffer[14];
            sprintf(Clockbuffer," %d", CClock);
            lcd.printString(Clockbuffer,39,2);
            flashLed();
        }
    }
}

void Clock::timeout()
{
    lcd.clear();
    lcd.printString("Time Out",16,3);
    knightrunner();
    CClock = CClock - 1;
    leds = 0;
}

#endif