with gcc-arm-none-eabi-7-2017-q4-major the default typedef of time_t is "long long int". older releases typedef time_t as "long int". mbed lib cannot handle this correctly This applies to exported projects as "GCC (ARM-Embedded)"
Fork of USBSerial_HelloWorld by
Diff: main.cpp
- Revision:
- 10:ee0528f8d38e
- Parent:
- 9:d88699a0905a
diff -r d88699a0905a -r ee0528f8d38e main.cpp --- a/main.cpp Fri Mar 01 13:33:02 2013 +0000 +++ b/main.cpp Wed Feb 07 10:30:36 2018 +0000 @@ -1,14 +1,43 @@ #include "mbed.h" -#include "USBSerial.h" - -//Virtual serial port over USB -USBSerial serial; - -int main(void) { - - while(1) - { - serial.printf("I am a virtual serial port\r\n"); + +#define SERIAL_TX PA_9 +#define SERIAL_RX PA_10 +Serial pc(SERIAL_TX, SERIAL_RX, 115200); + +int main(void) +{ + time_t t; + struct tm *tx; + + pc.printf("++++++++++++++++++++++\nsizeof(time_t) = %d\n++++++++++++++++++++++\n",sizeof(time_t)); + + time(&t); + pc.printf("read RTC: %u\n",(int)t); + tx = localtime(&t); + pc.printf("ctime: %s", ctime(&t)); + pc.printf("T: %d:%d:%d D: %d.%d.%d X: %d\n", + tx->tm_hour,tx->tm_min,tx->tm_sec, + tx->tm_mday,tx->tm_mon+1,tx->tm_year+1900, + tx->tm_isdst); + + pc.printf("t = 0\n"); + t = 0; + tx = localtime(&t); + pc.printf("ctime: %s", ctime(&t)); + pc.printf("T: %d:%d:%d D: %d.%d.%d X: %d\n", + tx->tm_hour,tx->tm_min,tx->tm_sec, + tx->tm_mday,tx->tm_mon+1,tx->tm_year+1900, + tx->tm_isdst); + + pc.printf("loop start\n"); + while (1) { + tx = localtime(&t); + pc.printf("ctime: %s", ctime(&t)); + pc.printf("T: %d:%d:%d D: %d.%d.%d X: %d\n", + tx->tm_hour,tx->tm_min,tx->tm_sec, + tx->tm_mday,tx->tm_mon+1,tx->tm_year+1900, + tx->tm_isdst); wait(1); + t += 1; } -} \ No newline at end of file +}