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.
us_ticker_rtc.h@0:321130411be8, 2016-10-11 (annotated)
- Committer:
- YJKIYOKAWA
- Date:
- Tue Oct 11 05:11:40 2016 +0000
- Revision:
- 0:321130411be8
us_ticker base rtc
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| YJKIYOKAWA | 0:321130411be8 | 1 | /* |
| YJKIYOKAWA | 0:321130411be8 | 2 | * Copyright (c) 2016 Delta Electronics(Japan), Inc |
| YJKIYOKAWA | 0:321130411be8 | 3 | * |
| YJKIYOKAWA | 0:321130411be8 | 4 | */ |
| YJKIYOKAWA | 0:321130411be8 | 5 | #ifndef US_TICKER_RTC_H |
| YJKIYOKAWA | 0:321130411be8 | 6 | #define US_TICKER_RTC_H |
| YJKIYOKAWA | 0:321130411be8 | 7 | |
| YJKIYOKAWA | 0:321130411be8 | 8 | #include <time.h> |
| YJKIYOKAWA | 0:321130411be8 | 9 | |
| YJKIYOKAWA | 0:321130411be8 | 10 | #ifdef __cplusplus |
| YJKIYOKAWA | 0:321130411be8 | 11 | extern "C" { |
| YJKIYOKAWA | 0:321130411be8 | 12 | #endif |
| YJKIYOKAWA | 0:321130411be8 | 13 | |
| YJKIYOKAWA | 0:321130411be8 | 14 | /** |
| YJKIYOKAWA | 0:321130411be8 | 15 | * |
| YJKIYOKAWA | 0:321130411be8 | 16 | * Provides Real-Time Clock (RTC) functions based on us_ticker. |
| YJKIYOKAWA | 0:321130411be8 | 17 | * |
| YJKIYOKAWA | 0:321130411be8 | 18 | * us_ticker count up 32 bit value in microseconds. |
| YJKIYOKAWA | 0:321130411be8 | 19 | * So it is overflow in 4294.967295 seconds = 71 minutes. |
| YJKIYOKAWA | 0:321130411be8 | 20 | * Need to call set_time() before overflow. |
| YJKIYOKAWA | 0:321130411be8 | 21 | * |
| YJKIYOKAWA | 0:321130411be8 | 22 | * |
| YJKIYOKAWA | 0:321130411be8 | 23 | * Example: |
| YJKIYOKAWA | 0:321130411be8 | 24 | * @code |
| YJKIYOKAWA | 0:321130411be8 | 25 | * #include "mbed.h" |
| YJKIYOKAWA | 0:321130411be8 | 26 | * #include "us_ticker_rtc.h" |
| YJKIYOKAWA | 0:321130411be8 | 27 | * |
| YJKIYOKAWA | 0:321130411be8 | 28 | * int main() { |
| YJKIYOKAWA | 0:321130411be8 | 29 | * |
| YJKIYOKAWA | 0:321130411be8 | 30 | * // Attach us_ticker base rtc functions to be used for the C time functions |
| YJKIYOKAWA | 0:321130411be8 | 31 | * attach_rtc(us_ticker_rtc_read, us_ticker_rtc_write, us_ticker_rtc_init, us_ticker_rtc_isenabled); |
| YJKIYOKAWA | 0:321130411be8 | 32 | * |
| YJKIYOKAWA | 0:321130411be8 | 33 | * time_t init_seconds = 1256729737; // Set RTC time to Wed, 28 Oct 2009 11:35:37 |
| YJKIYOKAWA | 0:321130411be8 | 34 | * set_time(init_seconds); |
| YJKIYOKAWA | 0:321130411be8 | 35 | * |
| YJKIYOKAWA | 0:321130411be8 | 36 | * while(1) { |
| YJKIYOKAWA | 0:321130411be8 | 37 | * time_t seconds = time(NULL); |
| YJKIYOKAWA | 0:321130411be8 | 38 | * if ((seconds - init_seconds) > 3600) |
| YJKIYOKAWA | 0:321130411be8 | 39 | * { |
| YJKIYOKAWA | 0:321130411be8 | 40 | * set_time(seconds); |
| YJKIYOKAWA | 0:321130411be8 | 41 | * init_seconds = seconds; |
| YJKIYOKAWA | 0:321130411be8 | 42 | * } |
| YJKIYOKAWA | 0:321130411be8 | 43 | * |
| YJKIYOKAWA | 0:321130411be8 | 44 | * printf("Time as seconds since January 1, 1970 = %d\n", seconds); |
| YJKIYOKAWA | 0:321130411be8 | 45 | * |
| YJKIYOKAWA | 0:321130411be8 | 46 | * printf("Time as a basic string = %s", ctime(&seconds)); |
| YJKIYOKAWA | 0:321130411be8 | 47 | * |
| YJKIYOKAWA | 0:321130411be8 | 48 | * char buffer[32]; |
| YJKIYOKAWA | 0:321130411be8 | 49 | * strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds)); |
| YJKIYOKAWA | 0:321130411be8 | 50 | * printf("Time as a custom formatted string = %s", buffer); |
| YJKIYOKAWA | 0:321130411be8 | 51 | * |
| YJKIYOKAWA | 0:321130411be8 | 52 | * wait(1); |
| YJKIYOKAWA | 0:321130411be8 | 53 | * } |
| YJKIYOKAWA | 0:321130411be8 | 54 | * } |
| YJKIYOKAWA | 0:321130411be8 | 55 | * @endcode |
| YJKIYOKAWA | 0:321130411be8 | 56 | */ |
| YJKIYOKAWA | 0:321130411be8 | 57 | |
| YJKIYOKAWA | 0:321130411be8 | 58 | void us_ticker_rtc_init(void); |
| YJKIYOKAWA | 0:321130411be8 | 59 | void us_ticker_rtc_free(void); |
| YJKIYOKAWA | 0:321130411be8 | 60 | int us_ticker_rtc_isenabled(void); |
| YJKIYOKAWA | 0:321130411be8 | 61 | |
| YJKIYOKAWA | 0:321130411be8 | 62 | time_t us_ticker_rtc_read(void); |
| YJKIYOKAWA | 0:321130411be8 | 63 | void us_ticker_rtc_write(time_t t); |
| YJKIYOKAWA | 0:321130411be8 | 64 | |
| YJKIYOKAWA | 0:321130411be8 | 65 | #ifdef __cplusplus |
| YJKIYOKAWA | 0:321130411be8 | 66 | } |
| YJKIYOKAWA | 0:321130411be8 | 67 | #endif |
| YJKIYOKAWA | 0:321130411be8 | 68 | |
| YJKIYOKAWA | 0:321130411be8 | 69 | #endif |