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:
Sat Mar 01 00:18:23 2014 +0000
Revision:
6:e7073adacdc8
Parent:
5:e374481e7554
Add indicator LED.

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 6:e7073adacdc8 24 DigitalOut led(LED1);
togayan 3:061cccf4093a 25 I2C i2c(dp5, dp27); //sda scl
togayan 3:061cccf4093a 26 I2cLCD lcd(i2c, dp26); //i2c reset
togayan 5:e374481e7554 27 Rtc8564 rtc(i2c, dp25, PullUp);
togayan 5:e374481e7554 28 ViewModel::ClockViewModel clockVm(lcd, dp28, dp24, dp17, dp1, dp2); // set increment decrement sound1 sound2
togayan 4:75ed86b78045 29 RtcMechanism rtcMechanism;
togayan 4:75ed86b78045 30 Model::Clock clock(&clockVm, &rtcMechanism);
togayan 4:75ed86b78045 31 clock.addSetMode(&rtcMechanism);
togayan 3:061cccf4093a 32 clock.addSetMode(&clockVm);
togayan 4:75ed86b78045 33 rtcMechanism.setClock(&clock);
togayan 4:75ed86b78045 34 rtcMechanism.setRtc(&rtc);
togayan 1:f8713c387a68 35 clockVm.setClock(&clock);
togayan 2:6f0158399eff 36 clock.initialize();
togayan 2:6f0158399eff 37 clockVm.initialize();
togayan 4:75ed86b78045 38 rtc.initialize();
togayan 0:86ab67787717 39
togayan 6:e7073adacdc8 40 while(1) {
togayan 6:e7073adacdc8 41 led = 1;
togayan 6:e7073adacdc8 42 wait(0.5);
togayan 6:e7073adacdc8 43 led = 0;
togayan 6:e7073adacdc8 44 wait(0.5);
togayan 6:e7073adacdc8 45 }
togayan 0:86ab67787717 46 }