RTC integrations

Dependencies:   MAX30003 max32630fthr DS1307

Files at this revision

API Documentation at this revision

Comitter:
kidecha_rahul
Date:
Wed Jun 09 17:24:31 2021 +0000
Parent:
16:520034b124b6
Commit message:
RTC;

Changed in this revision

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
diff -r 520034b124b6 -r f0008ebb1040 ds3231.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ds3231.lib	Wed Jun 09 17:24:31 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/MH/code/ds3231/#c13d48b7ebd9
diff -r 520034b124b6 -r f0008ebb1040 main.cpp
--- a/main.cpp	Wed Jun 09 17:04:56 2021 +0000
+++ b/main.cpp	Wed Jun 09 17:24:31 2021 +0000
@@ -6,10 +6,14 @@
 //#include <BufferedSerial.h>
 #include <string>
 //#include <Serial.h>
+#include "ds3231.h"
 
 #define TARGET_TX_PIN P0_1
 #define TARGET_RX_PIN P0_0
 
+#define SDA P3_4
+#define SCL P3_5
+
 Timer timer_fast;
 Timer t;
 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
@@ -70,6 +74,35 @@
     const int FIFO_VALID_SAMPLE_MASK =  0x0;
     const int FIFO_FAST_SAMPLE_MASK =  0x1;
     const int ETAG_BITS_MASK = 0x7;
+    
+//-------------------------------------------------------------RTC-------------------------------------------------------------//     
+   //instantiate rtc object
+Ds3231 rtc(SDA, SCL); 
+
+ uint16_t rtn_val;
+ 
+ //time = 12:00:00 AM 12hr mode
+ ds3231_time_t time = {0,50,14,1, 0};  // seconds, min, hours, am_pm, mode
+
+ 
+rtn_val = rtc.set_time(time);
+ 
+  
+  //see datasheet for calendar format
+ ds3231_calendar_t calendar = {1, 8, 06, 21}; // day date month year
+
+
+ rtn_val = rtc.set_calendar(calendar);
+ 
+ 
+//see datasheet for calendar format
+
+ ds3231_cntl_stat_t data = {0x1C, 0x08}; 
+
+ rtn_val = rtc.set_cntl_stat_reg(data);
+ //------------------------------------------------------------------------------------------------------------------------------//
+    
+    
     timer_fast.start();
     DigitalOut rLed(LED2, LED_ON);
 //    pc.baud(9600);
@@ -132,40 +165,20 @@
    // printf("In the main loop"); //printf("In the main loop");
      bool flag_first = false;
        bool timestamp_reader = false;
-  /*   do
-    {
-       if (pc.readable()) 
-     {     
-     scanf("%s",buf);
-    printf("The entered string is %s : \n ",buf);*/
-   // buf[20] = 1621297647;
-     packet_1 =  1623243727; //atoi(buf);
-     set_time(packet_1);
+       
+       
+       time_t epoch_time;  
+       
+           do {
+    rtc.get_time(&time);
+    rtc.get_calendar(&calendar); 
+    epoch_time = rtc.get_epoch();
+    //printf("seconds since the Epoch: %ld\n", epoch_time);
      
-  /*   if ((packet_1 % 60) == 0)
-         { 
-             for (int u = 0;u<3;u++)
-             {
-                 if (pc.readable()) 
-                {     
-                    scanf("%s",buf);
-                    printf("Entered the minute string  %s : \n ",buf);
-                 
-                    packet_1 = atoi(buf);
-                    set_time(packet_1);
-                }
-             }
-       timestamp_reader = true;
-    }
-       else
-        {
-             //printf("The timestamp is not divisible by 60 \n");
-   /*  }
-     flag_first = true;
-    
-        }
-        
-     }   while (timestamp_reader==false); */ // take the third timestamp 
+    packet_1 = epoch_time;
+      }while((epoch_time % 60)!=0);   // come out at the start of minute
+  
+  
 while(1) 
     {
        
@@ -181,8 +194,9 @@
       pc.write((uint8_t *)header_device_id, sizeof(header_device_id));
       
       pc.write((uint8_t *)header_packet_type, sizeof(header_packet_type));
-       time_t seconds = time(NULL);          // if remove it the timestamp will be static 
-      packet_1 = seconds;                     //
+       epoch_time = rtc.get_epoch();
+       //time_t seconds = time(NULL);          // if remove it the timestamp will be static 
+      packet_1 = epoch_time;                     //
       //packet_1 ++;
      // printf("Time as seconds since January 1, 1970 = %d\n", packet_1);
       p_1 = packet_1 & 0xff;