test rtc

Dependencies:   mbed PCF85263AT

Files at this revision

API Documentation at this revision

Comitter:
irsanjul
Date:
Wed Jun 17 08:48:06 2020 +0000
Commit message:
test rtc

Changed in this revision

.gitignore Show annotated file Show diff for this revision Revisions of this file
PCF85263AT.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.gitignore	Wed Jun 17 08:48:06 2020 +0000
@@ -0,0 +1,4 @@
+.build
+.mbed
+projectfiles
+*.py*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PCF85263AT.lib	Wed Jun 17 08:48:06 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/irsanjul/code/PCF85263AT/#fa906a89a756
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jun 17 08:48:06 2020 +0000
@@ -0,0 +1,61 @@
+#include "mbed.h"
+#include "PCF85263AT.h"
+
+Serial dbg(USBTX, USBRX);
+PCF85263AT rtc(D14, D15);
+DigitalOut led1(LED_RED);
+
+Ticker run;
+void runled()
+{
+    led1 =! led1;
+}
+
+time_t splitDate(const char *date, const char *time)
+{
+    struct tm now;
+    
+    char s_month[5];
+    int month, day, year, hour, min, sec;
+    static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
+
+    sscanf(date, "%s %d %d", s_month, &day, &year);
+    sscanf(time, "%d:%d:%d", &hour, &min, &sec);
+
+    month = (strstr(month_names, s_month)-month_names)/3;
+    
+    now.tm_sec = sec;
+    now.tm_min = min;
+    now.tm_hour = hour + 7;
+    now.tm_mon = month;
+    now.tm_mday = day;
+    now.tm_year = year - 1900;
+
+    return mktime(&now);
+}
+
+int main()
+{
+    run.attach(&runled, 0.5f);
+    dbg.baud(9600);
+    dbg.printf("<Program Start>\r\n");
+    
+    ulang:
+    if(rtc.IsConnected()){
+        dbg.printf("PCF85263AT is not detected\r\n");
+        dbg.printf("Reconnecting...");
+        goto ulang;
+    }
+    dbg.printf("PCF85263AT is detected\r\n");
+    
+    time_t new_t = splitDate(__DATE__, __TIME__);
+    rtc.set_time(new_t);
+
+    while (true) {
+        time_t t = rtc.now();
+        char buffer[32];
+        strftime(buffer, 32, "%d/%m/%Y %H:%M:%S \r\n", localtime(&t));
+        dbg.printf("%s", buffer);
+        wait(1);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Jun 17 08:48:06 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file