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

Committer:
togayan
Date:
Fri Feb 28 14:04:16 2014 +0000
Revision:
5:e374481e7554
Parent:
4:75ed86b78045
Child:
6:e7073adacdc8
Change pin assign. Add BEEP sound.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
togayan 0:86ab67787717 1 #include "mbed.h"
togayan 0:86ab67787717 2 #include "I2cLCD/I2cLCD.h"
togayan 4:75ed86b78045 3 #include "Rtc8564/Rtc8564.h"
togayan 0:86ab67787717 4 #include "ViewModel/ClockViewModel.h"
togayan 4:75ed86b78045 5 #include "Mechanism/RtcMechanism.h"
togayan 1:f8713c387a68 6 #include "Model/Clock.h"
togayan 1:f8713c387a68 7
togayan 5:e374481e7554 8 extern "C" void HardFault_Handler()
togayan 5:e374481e7554 9 {
togayan 5:e374481e7554 10 puts("Hard Fault!");
togayan 5:e374481e7554 11 while(1);
togayan 5:e374481e7554 12 }
togayan 5:e374481e7554 13
togayan 5:e374481e7554 14 void no_memory ()
togayan 5:e374481e7554 15 {
togayan 5:e374481e7554 16 puts("panic: can't allocate to memory!");
togayan 5:e374481e7554 17 exit(-1);
togayan 5:e374481e7554 18 }
togayan 5:e374481e7554 19
togayan 0:86ab67787717 20 int main()
togayan 0:86ab67787717 21 {
togayan 5:e374481e7554 22 set_new_handler(no_memory);
togayan 5:e374481e7554 23
togayan 3:061cccf4093a 24 I2C i2c(dp5, dp27); //sda scl
togayan 3:061cccf4093a 25 I2cLCD lcd(i2c, dp26); //i2c reset
togayan 5:e374481e7554 26 Rtc8564 rtc(i2c, dp25, PullUp);
togayan 5:e374481e7554 27 ViewModel::ClockViewModel clockVm(lcd, dp28, dp24, dp17, dp1, dp2); // set increment decrement sound1 sound2
togayan 4:75ed86b78045 28 RtcMechanism rtcMechanism;
togayan 4:75ed86b78045 29 Model::Clock clock(&clockVm, &rtcMechanism);
togayan 4:75ed86b78045 30 clock.addSetMode(&rtcMechanism);
togayan 3:061cccf4093a 31 clock.addSetMode(&clockVm);
togayan 4:75ed86b78045 32 rtcMechanism.setClock(&clock);
togayan 4:75ed86b78045 33 rtcMechanism.setRtc(&rtc);
togayan 1:f8713c387a68 34 clockVm.setClock(&clock);
togayan 2:6f0158399eff 35 clock.initialize();
togayan 2:6f0158399eff 36 clockVm.initialize();
togayan 4:75ed86b78045 37 rtc.initialize();
togayan 0:86ab67787717 38
togayan 4:75ed86b78045 39 while(1);
togayan 0:86ab67787717 40 }