Clock with Real-Time Clock (RTC-8564) and I2C LCD module(SB1062B).

Dependencies:   DebouncedEdgeIn I2cLCD_cursor Rtc8564 mbed beep

/media/uploads/togayan/imgp0004s.jpg /media/uploads/togayan/lcdclock_circuit_rev4.png

main.cpp

Committer:
togayan
Date:
2014-02-14
Revision:
1:f8713c387a68
Parent:
0:86ab67787717
Child:
2:6f0158399eff

File content as of revision 1:f8713c387a68:

#include "mbed.h"
#include "I2cLCD/I2cLCD.h"
#include "EventMechanism/EventHandler.h"
#include "EventMechanism/EventParam0.h"
#include "I2cRTC/I2cRTC.h"
#include "ViewModel/ClockViewModel.h"
#include "Model/Clock.h"

//Serial uart(dp16, dp15);
DigitalOut myled(LED1);

int main()
{
    I2C i2c(dp5, dp27); //sda scl
    I2cLCD lcd(i2c, dp4); //i2c reset
    EventMechanism::EventHandler evHandler(512);
    //EventMechanism::EventHandler evHandler(640);
    //EventMechanism::EventHandler evHandler(768);
    I2cRTC rtc(dp1, dp2, i2c, &evHandler);
    ViewModel::ClockViewModel clockVm(lcd, dp13, dp11, &evHandler, myled);
    Model::Clock clock(&clockVm, &rtc);
    rtc.setClock(&clock);
    clockVm.setClock(&clock);

    //myled = 1;
    evHandler.start();
    //myled = 0;
    evHandler.postEvent(new EventMechanism::EventParam0<Model::Clock>(&clock, &Model::Clock::initialize));
    evHandler.postEvent(new EventMechanism::EventParam0<ViewModel::ClockViewModel>(&clockVm, &ViewModel::ClockViewModel::initialize));
    evHandler.postEvent(new EventMechanism::EventParam0<I2cRTC>(&rtc, &I2cRTC::start));

    //uart.puts("ccc\n");
    puts("ccc\n");
    while(1) {
        //uart.getc();
        //evHandler.postEvent(new EventMechanism::EventParam0<Model::Clock>(&clock, &Model::Clock::initialize));
    }
}