9.3 Licht zeitgesteuert Ein- und Ausschalten, z.B. h:m:45 Ein, h:m:50 Aus.
Dependencies: EthernetInterface NTPClient mbed-rtos mbed
Fork of 09-01-Uebung by
main.cpp@1:731bf468ab9f, 2015-02-22 (annotated)
- Committer:
- stefan1691
- Date:
- Sun Feb 22 14:02:37 2015 +0000
- Revision:
- 1:731bf468ab9f
- Parent:
- 0:8107357917ce
- Child:
- 2:c56233cb8520
8.2 Setzen der Zeit, mittels der Seriellen Schnittstelle und Ausgabe Stunden und Minuten auf dem Display.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
stefan1691 | 1:731bf468ab9f | 1 | /** 8.2 Setzen der Zeit, mittels der Seriellen Schnittstelle und Ausgabe Stunden und Minuten auf dem Display. |
stefan1691 | 0:8107357917ce | 2 | * Beispiel von http://developer.mbed.org/blog/entry/103/ |
stefan1691 | 1:731bf468ab9f | 3 | * Informationen um Zeit zu holen von http://stackoverflow.com/questions/997946/how-to-get-current-time-and-date-in-c |
stefan1691 | 0:8107357917ce | 4 | */ |
stefan1691 | 0:8107357917ce | 5 | #include "mbed.h" |
stefan1691 | 0:8107357917ce | 6 | |
stefan1691 | 1:731bf468ab9f | 7 | #include "DigitDisplay.h" |
stefan1691 | 1:731bf468ab9f | 8 | |
stefan1691 | 1:731bf468ab9f | 9 | DigitDisplay display(PTC5, PTC7); |
stefan1691 | 1:731bf468ab9f | 10 | |
stefan1691 | 0:8107357917ce | 11 | int main() |
stefan1691 | 0:8107357917ce | 12 | { |
stefan1691 | 0:8107357917ce | 13 | // get the current time from the terminal |
stefan1691 | 0:8107357917ce | 14 | struct tm t; |
stefan1691 | 0:8107357917ce | 15 | printf("Enter current date and time:\n"); |
stefan1691 | 0:8107357917ce | 16 | printf("YYYY MM DD HH MM SS[enter]\n"); |
stefan1691 | 0:8107357917ce | 17 | scanf("%d %d %d %d %d %d", &t.tm_year, &t.tm_mon, &t.tm_mday |
stefan1691 | 0:8107357917ce | 18 | , &t.tm_hour, &t.tm_min, &t.tm_sec); |
stefan1691 | 0:8107357917ce | 19 | |
stefan1691 | 0:8107357917ce | 20 | // adjust for tm structure required values |
stefan1691 | 0:8107357917ce | 21 | t.tm_year = t.tm_year - 1900; |
stefan1691 | 0:8107357917ce | 22 | t.tm_mon = t.tm_mon - 1; |
stefan1691 | 0:8107357917ce | 23 | |
stefan1691 | 0:8107357917ce | 24 | // set the time |
stefan1691 | 1:731bf468ab9f | 25 | set_time( mktime(&t) ); |
stefan1691 | 0:8107357917ce | 26 | |
stefan1691 | 0:8107357917ce | 27 | // display the time |
stefan1691 | 0:8107357917ce | 28 | while(1) |
stefan1691 | 0:8107357917ce | 29 | { |
stefan1691 | 0:8107357917ce | 30 | time_t seconds = time(NULL); |
stefan1691 | 1:731bf468ab9f | 31 | struct tm * now = localtime( & seconds ); |
stefan1691 | 1:731bf468ab9f | 32 | printf( "%d.%d.%d %2d:%2d:%2d\n", now->tm_mday, now->tm_mon + 1, now->tm_year + 1900, now->tm_hour, now->tm_min, now->tm_sec ); |
stefan1691 | 1:731bf468ab9f | 33 | |
stefan1691 | 1:731bf468ab9f | 34 | display.write(0, now->tm_min / 10); |
stefan1691 | 1:731bf468ab9f | 35 | display.write(1, now->tm_min % 10); |
stefan1691 | 1:731bf468ab9f | 36 | display.write(2, now->tm_sec / 10); |
stefan1691 | 1:731bf468ab9f | 37 | display.write(3, now->tm_sec % 10); |
stefan1691 | 1:731bf468ab9f | 38 | |
stefan1691 | 0:8107357917ce | 39 | wait(1); |
stefan1691 | 0:8107357917ce | 40 | } |
stefan1691 | 0:8107357917ce | 41 | } |