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
RTC.h@49:243b5e826228, 2017-05-26 (annotated)
- Committer:
- Owenmatthewmcgowan
- Date:
- Fri May 26 09:37:06 2017 +0000
- Revision:
- 49:243b5e826228
- Parent:
- 38:3fe3bafbf0c7
merge;
Who changed what in which revision?
User | Revision | Line number | New 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); |