ask DS3231 Module for time and display to console. optionally set the time too.

Dependencies:   ds3231 max32630fthr USBDevice

Files at this revision

API Documentation at this revision

Comitter:
davidanasco
Date:
Fri Jul 23 02:44:24 2021 +0000
Commit message:
initial commit

Changed in this revision

USBDevice.lib Show annotated file Show diff for this revision Revisions of this file
ds3231.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
max32630fthr.lib Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 4527149f9f39 USBDevice.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBDevice.lib	Fri Jul 23 02:44:24 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/davidanasco/code/USBDevice/#2f8e3f5f75cf
diff -r 000000000000 -r 4527149f9f39 ds3231.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ds3231.lib	Fri Jul 23 02:44:24 2021 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Maxim-Integrated/code/ds3231/#11630748e2f2
diff -r 000000000000 -r 4527149f9f39 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jul 23 02:44:24 2021 +0000
@@ -0,0 +1,81 @@
+#include "mbed.h"
+#include "max32630fthr.h"
+#include "USBSerial.h"
+#include "ds3231.h"
+#define ESC 0x1B
+
+MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
+
+// Hardware serial port over DAPLink
+Serial daplink(USBTX, USBRX);
+
+// declare pins
+DigitalOut bLED(LED3);
+DigitalIn push(P2_3, PullUp);
+
+
+int main(){
+    Ds3231 rtc(I2C1_SDA, I2C1_SCL);
+    // rtc.frequency(0);
+
+    char buffer[32];
+    daplink.printf("%c[2J", ESC); //clear screen
+    daplink.printf("%c[H", ESC); //move cursor to Home
+    daplink.printf("< RTC DEMO >\r\n\n");
+    
+    for(int ii=0;ii<3;ii++){    // blink blue 3 times
+        bLED = LED_OFF;
+        wait(0.5);
+        bLED = LED_ON;
+        wait(0.5);
+        bLED = LED_OFF;
+    }
+
+    time_t epoch_time;  // declare variable for absolute time (in seconds) from Jan 1, 1970 12mn
+    ds3231_time_t timeKeep; // declare time variable
+    ds3231_calendar_t dateKeep; // declare calendar variable
+
+    // set to false when just reading time. set to true when setting time too.
+    bool setTime = false;
+    if(setTime){
+        // setting the time
+        timeKeep.seconds = 0;   // 1-59
+        timeKeep.minutes = 0;   // 1-59
+        timeKeep.hours = 10;    // 1-12
+        timeKeep.am_pm = 0;     // 0 am, 1 pm
+        timeKeep.mode = 0;      // 0 military, 1 normal
+
+        // setting the calendar
+        dateKeep.day = 5;       // 1 sunday - 7 saturday
+        dateKeep.date = 30;     // 1-31
+        dateKeep.month = 7;     // 1-12
+        dateKeep.year = 20;     // last 2 digit
+        
+        daplink.printf("Written Date: %u/%u/%u\r\n",dateKeep.year,dateKeep.month,dateKeep.date);
+        daplink.printf("Written Time: %u:%u:%u\r\n",timeKeep.hours,timeKeep.minutes,timeKeep.seconds);
+
+        if(rtc.set_time(timeKeep)){
+            daplink.printf("Setting time failed\r\n");
+        }
+        if(rtc.set_calendar(dateKeep)){
+            daplink.printf("Setting calendar failed\r\n");
+        }
+    }
+
+    rtc.get_calendar(&dateKeep);
+    daplink.printf("Initial Date: %u/%u/%u\r\n",dateKeep.year,dateKeep.month,dateKeep.date);
+    rtc.get_time(&timeKeep);
+    daplink.printf("Initial Time: %u:%u:%u\r\n\n",timeKeep.hours,timeKeep.minutes,timeKeep.seconds);
+
+    while(1){
+        if(!push){
+            bLED = LED_ON;
+            epoch_time = rtc.get_epoch();   // when button is pushed, display current date and time
+
+            strftime(buffer, 32, "%a %b%e %G %X", localtime(&epoch_time));
+            daplink.printf("%s\r\n", buffer);
+            wait(1);    // wait for a second before accepting input again. without this, it would display the time multiple times.
+            bLED = LED_OFF;
+        }
+    }
+}
diff -r 000000000000 -r 4527149f9f39 max32630fthr.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/max32630fthr.lib	Fri Jul 23 02:44:24 2021 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/MaximIntegrated/code/max32630fthr/#8f6e6a800f2f
diff -r 000000000000 -r 4527149f9f39 mbed-os.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os.lib	Fri Jul 23 02:44:24 2021 +0000
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/mbed-os/#269f58d75b752a4e67a6a2d8c5c698635ffd6752