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.
main.cpp@2:186958aacaef, 2017-05-12 (annotated)
- Committer:
- Rhyme
- Date:
- Fri May 12 01:33:08 2017 +0000
- Revision:
- 2:186958aacaef
- Parent:
- 0:dac564e18146
Some clean ups and added title print
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:dac564e18146 | 1 | #include "mbed.h" |
Rhyme | 0:dac564e18146 | 2 | #include "MSS.h" |
Rhyme | 0:dac564e18146 | 3 | #include "RTC8564.h" |
Rhyme | 0:dac564e18146 | 4 | |
Rhyme | 0:dac564e18146 | 5 | #define RTC8564_I2C_ADDRESS (0x51) |
Rhyme | 0:dac564e18146 | 6 | |
Rhyme | 0:dac564e18146 | 7 | char *dayName[] = { |
Rhyme | 0:dac564e18146 | 8 | "Sunday", |
Rhyme | 0:dac564e18146 | 9 | "Monday", |
Rhyme | 0:dac564e18146 | 10 | "Tuesday", |
Rhyme | 0:dac564e18146 | 11 | "Wednesday", |
Rhyme | 0:dac564e18146 | 12 | "Thursday", |
Rhyme | 0:dac564e18146 | 13 | "Friday", |
Rhyme | 0:dac564e18146 | 14 | "Saturday", |
Rhyme | 0:dac564e18146 | 15 | 0 |
Rhyme | 0:dac564e18146 | 16 | } ; |
Rhyme | 0:dac564e18146 | 17 | |
Rhyme | 0:dac564e18146 | 18 | RTC8564 *rtc = 0 ; |
Rhyme | 0:dac564e18146 | 19 | |
Rhyme | 0:dac564e18146 | 20 | void dumpData(uint8_t data[]) |
Rhyme | 0:dac564e18146 | 21 | { |
Rhyme | 0:dac564e18146 | 22 | int i ; |
Rhyme | 0:dac564e18146 | 23 | for (i = 0 ; i < 0x10 ; i++ ) { |
Rhyme | 0:dac564e18146 | 24 | printf("%02X ", data[i]) ; |
Rhyme | 0:dac564e18146 | 25 | } |
Rhyme | 0:dac564e18146 | 26 | printf("\n") ; |
Rhyme | 0:dac564e18146 | 27 | } |
Rhyme | 0:dac564e18146 | 28 | |
Rhyme | 0:dac564e18146 | 29 | void prompt(char *str) |
Rhyme | 0:dac564e18146 | 30 | { |
Rhyme | 0:dac564e18146 | 31 | printf("%s > ", str) ; |
Rhyme | 0:dac564e18146 | 32 | fflush(stdout) ; |
Rhyme | 0:dac564e18146 | 33 | } |
Rhyme | 0:dac564e18146 | 34 | |
Rhyme | 0:dac564e18146 | 35 | void setTime(void) |
Rhyme | 0:dac564e18146 | 36 | { |
Rhyme | 0:dac564e18146 | 37 | int year, month, day, dayofweek ; |
Rhyme | 0:dac564e18146 | 38 | int hour, minute, second ; |
Rhyme | 0:dac564e18146 | 39 | rtc->stop() ; |
Rhyme | 0:dac564e18146 | 40 | prompt("Enter Year") ; scanf("%d", &year) ; |
Rhyme | 0:dac564e18146 | 41 | rtc->setYears(year-2000) ; |
Rhyme | 0:dac564e18146 | 42 | |
Rhyme | 0:dac564e18146 | 43 | prompt("Enter Month") ; scanf("%d", &month) ; |
Rhyme | 0:dac564e18146 | 44 | rtc->setMonths(month) ; |
Rhyme | 0:dac564e18146 | 45 | |
Rhyme | 0:dac564e18146 | 46 | prompt("Enter Day") ; scanf("%d", &day) ; |
Rhyme | 0:dac564e18146 | 47 | rtc->setDays(day) ; |
Rhyme | 0:dac564e18146 | 48 | |
Rhyme | 0:dac564e18146 | 49 | prompt("Enter Day of week(0: Sun... 6: Sat)") ; |
Rhyme | 0:dac564e18146 | 50 | scanf("%d", &dayofweek) ; |
Rhyme | 0:dac564e18146 | 51 | rtc->setWeekdays( dayofweek ) ; |
Rhyme | 0:dac564e18146 | 52 | |
Rhyme | 0:dac564e18146 | 53 | prompt("Enter hour (0..23)") ; scanf("%d", &hour) ; |
Rhyme | 0:dac564e18146 | 54 | rtc->setHours(hour) ; |
Rhyme | 0:dac564e18146 | 55 | |
Rhyme | 0:dac564e18146 | 56 | prompt("Enter min (0..59)") ; scanf("%d", &minute) ; |
Rhyme | 0:dac564e18146 | 57 | rtc->setMinutes( minute ) ; |
Rhyme | 0:dac564e18146 | 58 | |
Rhyme | 0:dac564e18146 | 59 | prompt("Enter sec (0..59)") ; scanf("%d", &second ) ; |
Rhyme | 0:dac564e18146 | 60 | rtc->setSeconds( second ) ; |
Rhyme | 0:dac564e18146 | 61 | |
Rhyme | 0:dac564e18146 | 62 | rtc->setMinuteAlarm(0x00) ; |
Rhyme | 0:dac564e18146 | 63 | rtc->setHourAlarm(0x00) ; |
Rhyme | 0:dac564e18146 | 64 | rtc->setDayAlarm(0x00) ; |
Rhyme | 0:dac564e18146 | 65 | rtc->setWeekdayAlarm(0x00) ; |
Rhyme | 0:dac564e18146 | 66 | rtc->setCLKOUTFrequency(0x00) ; |
Rhyme | 0:dac564e18146 | 67 | rtc->setTimerControl(0x00) ; |
Rhyme | 0:dac564e18146 | 68 | rtc->setTimer(0x00) ; |
Rhyme | 0:dac564e18146 | 69 | |
Rhyme | 0:dac564e18146 | 70 | rtc->start() ; |
Rhyme | 0:dac564e18146 | 71 | } |
Rhyme | 0:dac564e18146 | 72 | |
Rhyme | 0:dac564e18146 | 73 | void printTime(void) |
Rhyme | 0:dac564e18146 | 74 | { |
Rhyme | 0:dac564e18146 | 75 | if (rtc) { |
Rhyme | 0:dac564e18146 | 76 | printf("20%02d/%02d/%02d %s %02d:%02d:%02d\n", |
Rhyme | 0:dac564e18146 | 77 | rtc->getYears(), |
Rhyme | 0:dac564e18146 | 78 | rtc->getMonths(), |
Rhyme | 0:dac564e18146 | 79 | rtc->getDays(), |
Rhyme | 0:dac564e18146 | 80 | dayName[ rtc->getWeekdays() ], |
Rhyme | 0:dac564e18146 | 81 | rtc->getHours(), |
Rhyme | 0:dac564e18146 | 82 | rtc->getMinutes(), |
Rhyme | 0:dac564e18146 | 83 | rtc->getSeconds() |
Rhyme | 0:dac564e18146 | 84 | ) ; |
Rhyme | 0:dac564e18146 | 85 | } |
Rhyme | 0:dac564e18146 | 86 | } |
Rhyme | 0:dac564e18146 | 87 | |
Rhyme | 0:dac564e18146 | 88 | int main() { |
Rhyme | 2:186958aacaef | 89 | rtc = new RTC8564(PIN_SDA, PIN_SCL, RTC8564_I2C_ADDRESS) ; |
Rhyme | 2:186958aacaef | 90 | printf("=== test RTC8564 for %s (%s) ===\n",BOARD_NAME, __DATE__) ; |
Rhyme | 0:dac564e18146 | 91 | setTime() ; |
Rhyme | 0:dac564e18146 | 92 | while(1){ |
Rhyme | 0:dac564e18146 | 93 | printTime() ; |
Rhyme | 2:186958aacaef | 94 | wait(1) ; |
Rhyme | 0:dac564e18146 | 95 | } |
Rhyme | 0:dac564e18146 | 96 | } |