rtc finalcode working 12

Dependencies:   mbed

Fork of frdm_rtccodeworking by Pradeep Kotipalli

Files at this revision

API Documentation at this revision

Comitter:
pradeepvk2208
Date:
Mon Dec 22 10:10:38 2014 +0000
Parent:
2:d67cd8569921
Commit message:
rtcfinalcode

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
rtsc.cpp Show annotated file Show diff for this revision Revisions of this file
rtsc.h Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Dec 22 09:27:47 2014 +0000
+++ b/main.cpp	Mon Dec 22 10:10:38 2014 +0000
@@ -1,11 +1,6 @@
-#include "mbed.h"
-SPI spi(PTD6, PTD7, PTD5); // mosi, miso, sclk
-DigitalOut cs(PTD2);
+#include "rtsc.h"
 
-void spiwrite(int);
-int spiread(int);
-int hexint(int);
-char* getname(int,int,int,int,int,int,int);
+
 
 
 int main() 
@@ -13,22 +8,21 @@
  
  
  
-    // Setup the spi for 8 bit data, high steady state clock,
+    /*// Setup the spi for 8 bit data, high steady state clock,
     // second edge capture, with a 1MHz clock rate
     spi.format(8,3);
     spi.frequency(1000000);
 
     // Send the commands to write to test the seconds register
-    /*cs = 0;
+    cs = 0;
     spi.write(0x80);  // set write register to seconds
-    spi.write(0x00);  // send value of one*/
-    spiwrite(0x80);
+    spi.write(0x00);  // send value of one*//*spiwrite(0x80);
     spiwrite(0x81);
     spiwrite(0x82);
     spiwrite(0x83);
     spiwrite(0x84);
     spiwrite(0x85);
-    spiwrite(0x86);
+    spiwrite(0x86);*/
     
     
    /* cs=1;
@@ -70,65 +64,65 @@
     cs=1;*/
     // Receive the contents of the seconds register
    
-   for(int i=0;i<1000000;i++){
+  /* for(int i=0;i<1000000;i++){
     
         
-    /*cs=0;
+    cs=0;
     spi.write(0x00);               // set read register to seconds
     int seconds = spi.write(0x00);   // read the value*/
-    int seconds=spiread(0x00);
+    //int seconds=spiread(0x00);
     
     /*cs=1;
     cs=0;
     
     spi.write(0x01);*/
-    int minutes =spiread(0x01);
+    //int minutes =spiread(0x01);
     
     
     /*cs=1;
     cs=0;
     
     spi.write(0x02);*/
-    int hours =spiread(0x02);
+    //int hours =spiread(0x02);
    /* cs = 1;  //This cs=1 is to make the chipselect line high to "deselect" the slave in our case RTC
     
     cs=0;
     
     spi.write(0x03);*/
-    int day =spi.write(0x03);
+    //int day =spi.write(0x03);
     /*cs = 1;
     
     cs=0;
     
     spi.write(0x04);*/
-    int date =spiread(0x04);
+   // int date =spiread(0x04);
     /*cs = 1;
     
     cs=0;
     
     spi.write(0x05);*/
-    int month =spiread(0x05);
+    //int month =spiread(0x05);
     /*cs = 1;
     
     cs=0;
     
     spi.write(0x06);*/
-    int year =spiread(0x06);
-    cs = 1;
+   // int year =spiread(0x06);
+    //cs = 1;
     
-    wait(1);
+    //wait(1);
     //This printf function is to check the timestamp function in the terminal output
-    printf("Seconds register = %2X : %2X : %2X : %2X : %2X : %2X : %2X \n\r",year,month,date,day, hours,minutes,seconds);
-     printf("b4 returning tmpstmp is : %s\n",getname(year,month,date,day,hours,minutes,seconds));
-    }
+  //  printf("Seconds register = %2X : %2X : %2X : %2X : %2X : %2X : %2X \n\r",year,month,date,day, hours,minutes,seconds);
+    // printf("b4 returning tmpstmp is : %s\n",getname(year,month,date,day,hours,minutes,seconds));
+    //}*/
     
-    return 0;
+    getts();
     
     
     
     }
     
-    void spiwrite(int a)
+   /* void spiwrite(int a)
     {
         cs=1;
         cs=0;
@@ -151,13 +145,13 @@
     hours1=hexint(hours1);
     minutes1=hexint(minutes1);
     seconds1=hexint(seconds1);
-    /*char y[3]=getstr(year);
+    char y[3]=getstr(year);
     char m[3]=getstr(month);
     char dat[3]=getstr(date);
     char da[3]=getstr(day);
     char h[3]=getstr(hours);
     char mi[3]=getstr(minutes);
-    char s[3]=getstr(seconds);*/
+    char s[3]=getstr(seconds);
     char time[15];
     sprintf(time,"%2d%2d%2d%2d%2d%2d%2d",year1,month1,date1,day1,hours1,minutes1,seconds1);
     return(time);
@@ -168,4 +162,4 @@
 {
     a=(a/16)*10+(a%16);
     return a;
-}
\ No newline at end of file
+}*/
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rtsc.cpp	Mon Dec 22 10:10:38 2014 +0000
@@ -0,0 +1,73 @@
+#include "rtsc.h"
+SPI spi(PTD6, PTD7, PTD5);
+DigitalOut cs(PTD2);
+
+ void spiwrite(int a)
+    {
+        cs=1;
+        cs=0;
+        spi.write(a);
+        spi.write(0x01);
+    }
+    
+    int spiread(int a)
+    {
+        cs=1;
+        cs=0;
+        spi.write(a);
+        return(spi.write(0x00));
+    }
+    char* getname(int year1,int month1,int date1,int day1,int hours1,int minutes1,int seconds1)
+{
+    year1= hexint(year1);
+    month1=hexint(month1);
+    date1=hexint(date1);
+    day1=hexint(day1);
+    hours1=hexint(hours1);
+    minutes1=hexint(minutes1);
+    seconds1=hexint(seconds1);
+    /*char y[3]=getstr(year);
+    char m[3]=getstr(month);
+    char dat[3]=getstr(date);
+    char da[3]=getstr(day);
+    char h[3]=getstr(hours);
+    char mi[3]=getstr(minutes);
+    char s[3]=getstr(seconds);*/
+    char time[15];
+    sprintf(time,"%2d%2d%2d%2d%2d%2d%2d",year1,month1,date1,day1,hours1,minutes1,seconds1);
+    return(time);
+    
+}
+
+int hexint(int a)
+{
+    a=(a/16)*10+(a%16);
+    return a;
+}
+
+char* getts(void)
+{
+    spi.format(8,3);
+    spi.frequency(1000000);
+    spiwrite(0x80);
+    spiwrite(0x81);
+    spiwrite(0x82);
+    spiwrite(0x83);
+    spiwrite(0x84);
+    spiwrite(0x85);
+    spiwrite(0x86);
+    for(int i=0;i<1000000;i++){
+    int seconds=spiread(0x00);
+    int minutes =spiread(0x01);
+    int hours =spiread(0x02);
+    int day =spi.write(0x03);
+    int date =spiread(0x04);
+    int month =spiread(0x05);
+    int year =spiread(0x06);
+    cs = 1;
+    
+    wait(1);
+    printf("Seconds register = %2X : %2X : %2X : %2X : %2X : %2X : %2X \n\r",year,month,date,day, hours,minutes,seconds);
+     printf("b4 returning tmpstmp is : %s\n",getname(year,month,date,day,hours,minutes,seconds));
+    }
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rtsc.h	Mon Dec 22 10:10:38 2014 +0000
@@ -0,0 +1,7 @@
+#include "mbed.h"
+
+void spiwrite(int);
+int spiread(int);
+int hexint(int);
+char* getname(int,int,int,int,int,int,int);
+char* getts(void);
\ No newline at end of file