hi rtc

Dependencies:   mbed

Fork of testing_rtc by saiteja dommeti

Committer:
pradeepvk2208
Date:
Sun Dec 21 09:56:03 2014 +0000
Revision:
2:c38929a198a7
Parent:
1:620887c20cee
ds3234 test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
z3on 1:620887c20cee 1 #include "rtc_tst.h"
z3on 1:620887c20cee 2 #include "string.h"
z3on 1:620887c20cee 3
z3on 1:620887c20cee 4 SPI spi(PTD6, PTD7, PTD5); // mosi, miso, sclk
z3on 1:620887c20cee 5 DigitalOut cs(D9);
z3on 1:620887c20cee 6
z3on 1:620887c20cee 7
z3on 1:620887c20cee 8 char* Getts()
z3on 1:620887c20cee 9 {
z3on 1:620887c20cee 10
z3on 1:620887c20cee 11 // Setup the spi for 8 bit data, high steady state clock,
z3on 1:620887c20cee 12 // second edge capture, with a 1MHz clock rate
z3on 1:620887c20cee 13 spi.format(8,3);
z3on 1:620887c20cee 14 spi.frequency(1000000);
z3on 1:620887c20cee 15
z3on 1:620887c20cee 16 cs = 0;
z3on 1:620887c20cee 17 spi.write(0x80); // set write register to seconds
z3on 1:620887c20cee 18 spi.write(0x00); // send value of zero
z3on 1:620887c20cee 19
z3on 1:620887c20cee 20 //cs=1;
z3on 1:620887c20cee 21 //cs=0;
z3on 1:620887c20cee 22 spi.write(0x81);
z3on 1:620887c20cee 23 spi.write(0x00); //write reg to minutes
z3on 1:620887c20cee 24
z3on 1:620887c20cee 25 //cs=1;
z3on 1:620887c20cee 26 //cs=0;
z3on 1:620887c20cee 27
z3on 1:620887c20cee 28 spi.write(0x82);
pradeepvk2208 2:c38929a198a7 29 spi.write(0x00); //write reg to hours (00-23)
z3on 1:620887c20cee 30
z3on 1:620887c20cee 31 spi.write(0x83);
pradeepvk2208 2:c38929a198a7 32 spi.write(0x00); //write reg to day (1-7)
z3on 1:620887c20cee 33
z3on 1:620887c20cee 34 spi.write(0x84);
pradeepvk2208 2:c38929a198a7 35 spi.write(0x00); //write reg to date(01-31)
z3on 1:620887c20cee 36
z3on 1:620887c20cee 37 spi.write(0x85);
pradeepvk2208 2:c38929a198a7 38 spi.write(0x00); //write reg to mnth(01-12)
z3on 1:620887c20cee 39
z3on 1:620887c20cee 40 spi.write(0x86);
pradeepvk2208 2:c38929a198a7 41 spi.write(0x00); //write reg to year(00-99)
z3on 1:620887c20cee 42
z3on 1:620887c20cee 43 cs=1;
z3on 1:620887c20cee 44 // Receive the contents of the seconds register
z3on 1:620887c20cee 45
z3on 1:620887c20cee 46
z3on 1:620887c20cee 47
z3on 1:620887c20cee 48
z3on 1:620887c20cee 49 cs=0;
z3on 1:620887c20cee 50 spi.write(0x00); // set read register to seconds
z3on 1:620887c20cee 51 int seconds = spi.write(0x00); // read the value by sending dummy byte
z3on 1:620887c20cee 52
z3on 1:620887c20cee 53 //cs=1;
z3on 1:620887c20cee 54 //cs=0;
z3on 1:620887c20cee 55
z3on 1:620887c20cee 56 spi.write(0x01);
z3on 1:620887c20cee 57 int minutes =spi.write(0x01);
z3on 1:620887c20cee 58
z3on 1:620887c20cee 59 //cs=1;
z3on 1:620887c20cee 60 //cs=0;
z3on 1:620887c20cee 61
z3on 1:620887c20cee 62 spi.write(0x02);
z3on 1:620887c20cee 63 int hours =spi.write(0x01);
z3on 1:620887c20cee 64
z3on 1:620887c20cee 65 spi.write(0x03);
z3on 1:620887c20cee 66 int day =spi.write(0x01);
z3on 1:620887c20cee 67
z3on 1:620887c20cee 68 spi.write(0x04);
z3on 1:620887c20cee 69 int date =spi.write(0x01);
z3on 1:620887c20cee 70
z3on 1:620887c20cee 71 spi.write(0x05);
z3on 1:620887c20cee 72 int month =spi.write(0x01);
z3on 1:620887c20cee 73
z3on 1:620887c20cee 74 spi.write(0x06);
z3on 1:620887c20cee 75 int year =spi.write(0x01);
z3on 1:620887c20cee 76
z3on 1:620887c20cee 77 //This cs=1 is to make the chipselect line high to "deselect" the slave in our case RTC
z3on 1:620887c20cee 78 cs = 1;
z3on 1:620887c20cee 79
z3on 1:620887c20cee 80 //This printf function is to check the timestamp function in the terminal output
z3on 1:620887c20cee 81 printf("timestamp as = %X : %X : %X : %X : %X : %X : %X\n\r", hours,minutes,seconds,day,date,month,year);
z3on 1:620887c20cee 82
z3on 1:620887c20cee 83
z3on 1:620887c20cee 84 printf("b4 returning tmpstmp is : %s\n",getname(year,month,date,day,hours,minutes,seconds));
z3on 1:620887c20cee 85 return(getname(year,month,date,day,hours,minutes,seconds));
z3on 1:620887c20cee 86
z3on 1:620887c20cee 87
z3on 1:620887c20cee 88 }
z3on 1:620887c20cee 89
z3on 1:620887c20cee 90
z3on 1:620887c20cee 91
z3on 1:620887c20cee 92
z3on 1:620887c20cee 93
z3on 1:620887c20cee 94
z3on 1:620887c20cee 95 char* getname(int year1,int month1,int date1,int day1,int hours1,int minutes1,int seconds1)
z3on 1:620887c20cee 96 {
z3on 1:620887c20cee 97 year1= hexint(year1);
z3on 1:620887c20cee 98 month1=hexint(month1);
z3on 1:620887c20cee 99 date1=hexint(date1);
z3on 1:620887c20cee 100 day1=hexint(day1);
z3on 1:620887c20cee 101 hours1=hexint(hours1);
z3on 1:620887c20cee 102 minutes1=hexint(minutes1);
z3on 1:620887c20cee 103 seconds1=hexint(seconds1);
z3on 1:620887c20cee 104 /*char y[3]=getstr(year);
z3on 1:620887c20cee 105 char m[3]=getstr(month);
z3on 1:620887c20cee 106 char dat[3]=getstr(date);
z3on 1:620887c20cee 107 char da[3]=getstr(day);
z3on 1:620887c20cee 108 char h[3]=getstr(hours);
z3on 1:620887c20cee 109 char mi[3]=getstr(minutes);
z3on 1:620887c20cee 110 char s[3]=getstr(seconds);*/
z3on 1:620887c20cee 111 char time[15];
pradeepvk2208 2:c38929a198a7 112 sprintf(time,"%2d%2d%2d%2d%2d%2d%2d",year1,month1,date1,day1,hours1,minutes1,seconds1);
z3on 1:620887c20cee 113 return(time);
z3on 1:620887c20cee 114
z3on 1:620887c20cee 115 }
z3on 1:620887c20cee 116
z3on 1:620887c20cee 117 int hexint(int a)
z3on 1:620887c20cee 118 {
z3on 1:620887c20cee 119 a=(a/16)*10+(a%16);
z3on 1:620887c20cee 120 return a;
z3on 1:620887c20cee 121 }