Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem mbed
RTC8564.cpp@1:58c05f881281, 2017-05-24 (annotated)
- Committer:
- satoseiz
- Date:
- Wed May 24 00:58:25 2017 +0000
- Revision:
- 1:58c05f881281
- Parent:
- 0:dd4a28744f4e
;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| satoseiz | 0:dd4a28744f4e | 1 | #include "mbed.h" |
| satoseiz | 0:dd4a28744f4e | 2 | #include "RTC8564.h" |
| satoseiz | 0:dd4a28744f4e | 3 | |
| satoseiz | 0:dd4a28744f4e | 4 | //lpc1768 |
| satoseiz | 0:dd4a28744f4e | 5 | void rtc_write(char address, char value) |
| satoseiz | 0:dd4a28744f4e | 6 | { |
| satoseiz | 0:dd4a28744f4e | 7 | i2c.start(); |
| satoseiz | 0:dd4a28744f4e | 8 | i2c.write(RTC8564NB_ADR); |
| satoseiz | 0:dd4a28744f4e | 9 | i2c.write(address); |
| satoseiz | 0:dd4a28744f4e | 10 | i2c.write(value); |
| satoseiz | 0:dd4a28744f4e | 11 | i2c.stop(); |
| satoseiz | 0:dd4a28744f4e | 12 | } |
| satoseiz | 0:dd4a28744f4e | 13 | |
| satoseiz | 0:dd4a28744f4e | 14 | char rtc_read(char address) |
| satoseiz | 0:dd4a28744f4e | 15 | { |
| satoseiz | 0:dd4a28744f4e | 16 | char value; |
| satoseiz | 0:dd4a28744f4e | 17 | i2c.start(); |
| satoseiz | 0:dd4a28744f4e | 18 | i2c.write(RTC8564NB_ADR); |
| satoseiz | 0:dd4a28744f4e | 19 | i2c.write(address); |
| satoseiz | 0:dd4a28744f4e | 20 | i2c.start(); |
| satoseiz | 0:dd4a28744f4e | 21 | i2c.write(RTC8564NB_ADR | _READ); |
| satoseiz | 0:dd4a28744f4e | 22 | value = i2c.read(0); |
| satoseiz | 0:dd4a28744f4e | 23 | i2c.stop(); |
| satoseiz | 0:dd4a28744f4e | 24 | |
| satoseiz | 0:dd4a28744f4e | 25 | return value; |
| satoseiz | 0:dd4a28744f4e | 26 | } |
| satoseiz | 0:dd4a28744f4e | 27 | |
| satoseiz | 0:dd4a28744f4e | 28 | void time_just() |
| satoseiz | 0:dd4a28744f4e | 29 | { |
| satoseiz | 0:dd4a28744f4e | 30 | char _min, _hour; |
| satoseiz | 0:dd4a28744f4e | 31 | _min = rtc_read(MINUTES); |
| satoseiz | 0:dd4a28744f4e | 32 | if (_min >= 0x30) { |
| satoseiz | 0:dd4a28744f4e | 33 | _hour = rtc_read(HOURS); |
| satoseiz | 0:dd4a28744f4e | 34 | if (_hour == 0x23) |
| satoseiz | 0:dd4a28744f4e | 35 | _hour = 0x00; |
| satoseiz | 0:dd4a28744f4e | 36 | else if ((_hour & 0x0F) == 0x09) |
| satoseiz | 0:dd4a28744f4e | 37 | _hour = (_hour & 0xF0) + 0x10; |
| satoseiz | 0:dd4a28744f4e | 38 | else |
| satoseiz | 0:dd4a28744f4e | 39 | _hour = _hour + 0x01; |
| satoseiz | 0:dd4a28744f4e | 40 | rtc_write(HOURS, _hour); |
| satoseiz | 0:dd4a28744f4e | 41 | } |
| satoseiz | 0:dd4a28744f4e | 42 | rtc_write(MINUTES, 0x00); |
| satoseiz | 0:dd4a28744f4e | 43 | rtc_write(SECONDS, 0x00); |
| satoseiz | 0:dd4a28744f4e | 44 | } |
| satoseiz | 0:dd4a28744f4e | 45 | |
| satoseiz | 0:dd4a28744f4e | 46 | |
| satoseiz | 0:dd4a28744f4e | 47 | void rtc_setdaytime(char y[3], char m[3], char d[3], char h[3], char min[3], char s[3], char week_val[2]) |
| satoseiz | 0:dd4a28744f4e | 48 | { |
| satoseiz | 0:dd4a28744f4e | 49 | rtc_write(CONTROL1, 0x20); //stop |
| satoseiz | 0:dd4a28744f4e | 50 | rtc_write(CONTROL2, 0x00); |
| satoseiz | 0:dd4a28744f4e | 51 | rtc_write(YEARS, ((y[0]-0x30)<<4)+(y[1]-0x30)); |
| satoseiz | 0:dd4a28744f4e | 52 | rtc_write(MONTHS, ((m[0]-0x30)<<4)+(m[1]-0x30)); |
| satoseiz | 0:dd4a28744f4e | 53 | rtc_write(DAYS, ((d[0]-0x30)<<4)+(d[1]-0x30)); |
| satoseiz | 0:dd4a28744f4e | 54 | rtc_write(HOURS, ((h[0]-0x30)<<4)+(h[1]-0x30)); |
| satoseiz | 0:dd4a28744f4e | 55 | rtc_write(MINUTES, ((min[0]-0x30)<<4)+(min[1]-0x30)); |
| satoseiz | 0:dd4a28744f4e | 56 | rtc_write(SECONDS, ((s[0]-0x30)<<4)+(s[1]-0x30)); |
| satoseiz | 0:dd4a28744f4e | 57 | rtc_write(WEEKDAYS, week_val[0] - 0x30); //Sunday = "0", Monday = "1" ... |
| satoseiz | 0:dd4a28744f4e | 58 | rtc_write(CLOCKOUT_FREQ, 0x00); // 0x83 = TE on & 1Hz |
| satoseiz | 0:dd4a28744f4e | 59 | rtc_write(TIMER_CONTROL, 0x00); |
| satoseiz | 0:dd4a28744f4e | 60 | rtc_write(CONTROL1, 0x00); //start |
| satoseiz | 0:dd4a28744f4e | 61 | return; |
| satoseiz | 0:dd4a28744f4e | 62 | } |