mbed workshop intro + cansat examples
RTC2.cpp@0:f309f06aeec7, 2012-05-10 (annotated)
- Committer:
- yamaguch
- Date:
- Thu May 10 21:14:34 2012 +0000
- Revision:
- 0:f309f06aeec7
1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch | 0:f309f06aeec7 | 1 | #include "mbed.h" |
yamaguch | 0:f309f06aeec7 | 2 | |
yamaguch | 0:f309f06aeec7 | 3 | void printTime(int n) { |
yamaguch | 0:f309f06aeec7 | 4 | printf("\n"); |
yamaguch | 0:f309f06aeec7 | 5 | |
yamaguch | 0:f309f06aeec7 | 6 | time_t prev = time(NULL); |
yamaguch | 0:f309f06aeec7 | 7 | while (n > 0) { |
yamaguch | 0:f309f06aeec7 | 8 | time_t seconds = time(NULL); |
yamaguch | 0:f309f06aeec7 | 9 | if (prev != seconds) { |
yamaguch | 0:f309f06aeec7 | 10 | char buf[32]; |
yamaguch | 0:f309f06aeec7 | 11 | strftime(buf, sizeof(buf), "%x %X", localtime(&seconds)); |
yamaguch | 0:f309f06aeec7 | 12 | printf("%s\n", buf); |
yamaguch | 0:f309f06aeec7 | 13 | prev = seconds; |
yamaguch | 0:f309f06aeec7 | 14 | n--; |
yamaguch | 0:f309f06aeec7 | 15 | } |
yamaguch | 0:f309f06aeec7 | 16 | } |
yamaguch | 0:f309f06aeec7 | 17 | } |
yamaguch | 0:f309f06aeec7 | 18 | |
yamaguch | 0:f309f06aeec7 | 19 | void adjustTime() { |
yamaguch | 0:f309f06aeec7 | 20 | int n1, n2, n3, n4, n5, n6; |
yamaguch | 0:f309f06aeec7 | 21 | struct tm t; |
yamaguch | 0:f309f06aeec7 | 22 | |
yamaguch | 0:f309f06aeec7 | 23 | printf("\nEnter current time (yy/mm/dd hh:mm:ss)\n"); |
yamaguch | 0:f309f06aeec7 | 24 | |
yamaguch | 0:f309f06aeec7 | 25 | scanf("%d / %d / %d %d : %d : %d", &n1, &n2, &n3, &n4, &n5, &n6); |
yamaguch | 0:f309f06aeec7 | 26 | t.tm_sec = n6; |
yamaguch | 0:f309f06aeec7 | 27 | t.tm_min = n5; |
yamaguch | 0:f309f06aeec7 | 28 | t.tm_hour = n4; |
yamaguch | 0:f309f06aeec7 | 29 | t.tm_mday = n3; |
yamaguch | 0:f309f06aeec7 | 30 | t.tm_mon = n2 - 1; |
yamaguch | 0:f309f06aeec7 | 31 | t.tm_year = n1 + 100; |
yamaguch | 0:f309f06aeec7 | 32 | |
yamaguch | 0:f309f06aeec7 | 33 | set_time(mktime(&t)); |
yamaguch | 0:f309f06aeec7 | 34 | } |
yamaguch | 0:f309f06aeec7 | 35 | |
yamaguch | 0:f309f06aeec7 | 36 | int main() { |
yamaguch | 0:f309f06aeec7 | 37 | if (time(NULL) == (time_t) -1) { |
yamaguch | 0:f309f06aeec7 | 38 | set_time(0); |
yamaguch | 0:f309f06aeec7 | 39 | } |
yamaguch | 0:f309f06aeec7 | 40 | |
yamaguch | 0:f309f06aeec7 | 41 | printf("Adjust RTC - Enter t or T\n"); |
yamaguch | 0:f309f06aeec7 | 42 | |
yamaguch | 0:f309f06aeec7 | 43 | while (true) { |
yamaguch | 0:f309f06aeec7 | 44 | switch (getchar()) { |
yamaguch | 0:f309f06aeec7 | 45 | case 'T': |
yamaguch | 0:f309f06aeec7 | 46 | adjustTime(); |
yamaguch | 0:f309f06aeec7 | 47 | break; |
yamaguch | 0:f309f06aeec7 | 48 | case 't': |
yamaguch | 0:f309f06aeec7 | 49 | printTime(5); |
yamaguch | 0:f309f06aeec7 | 50 | break; |
yamaguch | 0:f309f06aeec7 | 51 | } |
yamaguch | 0:f309f06aeec7 | 52 | } |
yamaguch | 0:f309f06aeec7 | 53 | } |