Contains the main execution of the clock uses headers to import functions

Dependencies:   RTC-DS1307 SPI_TFT_ILI9341 TFT_fonts mbed tsi_sensor

Fork of TFT_Mikroelectronika_IL9341_sketchpad by Oxford CWM Team

Committer:
Owenmatthewmcgowan
Date:
Fri May 26 09:37:06 2017 +0000
Revision:
49:243b5e826228
Parent:
38:3fe3bafbf0c7
merge;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mlin 11:1da15361a35b 1 #include "Rtc_Ds1307.h"
mlin 38:3fe3bafbf0c7 2 #include "math.h"
mlin 9:eee503060d69 3 Rtc_Ds1307 rtc(I2C_SDA, I2C_SCL);
mlin 9:eee503060d69 4 Rtc_Ds1307::Time_rtc tm_c = {};
mlin 16:3cb9b1fbc039 5 int tm_a_hr, tm_a_min = 0;
mlin 9:eee503060d69 6 char buffer[128];
mlin 9:eee503060d69 7 int readptr = 0;
mlin 9:eee503060d69 8
mlin 38:3fe3bafbf0c7 9 int date2day(int date,int month,int year){
mlin 38:3fe3bafbf0c7 10 int m = ((((month + 9) % 12 + 1) * 2.6) - 0.2);
mlin 38:3fe3bafbf0c7 11 int c = year / 100;
mlin 38:3fe3bafbf0c7 12 int y = year % 100;
mlin 38:3fe3bafbf0c7 13 int w = (date + m - 2 * c + y + y / 4 + (c / 4)) % 7;
mlin 38:3fe3bafbf0c7 14 return w;
mlin 38:3fe3bafbf0c7 15 }
mlin 9:eee503060d69 16
mlin 11:1da15361a35b 17 void read_time()
mlin 11:1da15361a35b 18 {
mlin 11:1da15361a35b 19 // perform read
mlin 9:eee503060d69 20 int n = 0;
mlin 9:eee503060d69 21 do {
mlin 9:eee503060d69 22 n++;
mlin 9:eee503060d69 23 } while(!rtc.getTime(tm_c));
mlin 38:3fe3bafbf0c7 24 tm_c.wday = date2day(tm_c.date, tm_c.mon, tm_c.year);
mlin 9:eee503060d69 25 }
mlin 9:eee503060d69 26
mlin 11:1da15361a35b 27 void write()
mlin 11:1da15361a35b 28 {
mlin 9:eee503060d69 29 // perform write
mlin 9:eee503060d69 30 pc.printf("Enter the date (date 0..31)");
mlin 9:eee503060d69 31 pc.scanf("%d", &tm_c.date);
mlin 9:eee503060d69 32 pc.printf("Enter the date (month 1..12)");
mlin 9:eee503060d69 33 pc.scanf("%d", &tm_c.mon);
mlin 9:eee503060d69 34 pc.printf("Enter the date (year)");
mlin 9:eee503060d69 35 pc.scanf("%d", &tm_c.year);
mlin 9:eee503060d69 36 pc.printf("Enter the time (hours 0..23)");
mlin 9:eee503060d69 37 pc.scanf("%d", &tm_c.hour);
mlin 9:eee503060d69 38 pc.printf("Enter the time (minutes 0..59)");
mlin 9:eee503060d69 39 pc.scanf("%d", &tm_c.min);
mlin 9:eee503060d69 40 pc.printf("Enter the time (seconds 0..59)");
mlin 9:eee503060d69 41 pc.scanf("%d", &tm_c.sec);
mlin 9:eee503060d69 42 pc.printf("Performing write operation\n\r");
mlin 11:1da15361a35b 43
mlin 11:1da15361a35b 44 while(pc.readable())
mlin 11:1da15361a35b 45
mlin 9:eee503060d69 46 pc.getc();
mlin 9:eee503060d69 47 int n = 0;
mlin 11:1da15361a35b 48 while (!rtc.setTime(tm_c, true, false)) { //set the Time in RTC Param : ( Time container, Start Clock, Twelve Hour Clock)
mlin 11:1da15361a35b 49 n++;
mlin 9:eee503060d69 50 }
mlin 11:1da15361a35b 51 pc.printf("Tried to write %d times\n\r",n);
mlin 9:eee503060d69 52 }
mlin 9:eee503060d69 53
mlin 9:eee503060d69 54 //other RTC functions:
mlin 9:eee503060d69 55 //rtc.startClock();
mlin 9:eee503060d69 56 //rtc.stopClock();
mlin 9:eee503060d69 57 //square wave
mlin 9:eee503060d69 58 // int rs;
mlin 9:eee503060d69 59 // pc.printf("Please specify the frequency : [0 = 1Hz, 1 = 4.096kHz, 2 = 8.192kHz, 3 = 32.768kHz] ");
mlin 9:eee503060d69 60 // scanf("%d", &rs);
mlin 9:eee503060d69 61 // pc.printf("Enabling the output with %d option\n", rs);
mlin 9:eee503060d69 62 // rtc.setSquareWaveOutput(true, (Rtc_Ds1307::SqwRateSelect_t)rs);
mlin 9:eee503060d69 63
mlin 9:eee503060d69 64
mlin 9:eee503060d69 65 //square wave off
mlin 9:eee503060d69 66 //rtc.setSquareWaveOutput(false, Rtc_Ds1307::RS1Hz);