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
--- /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
--- /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
--- /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;
+        }
+    }
+}
--- /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
--- /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