saiteja dommeti
/
testing_rtc
with one warning !!
Fork of testing_rtc by
rtc_tst.cpp
- Committer:
- z3on
- Date:
- 2014-12-20
- Revision:
- 1:620887c20cee
File content as of revision 1:620887c20cee:
#include "rtc_tst.h" #include "string.h" SPI spi(PTD6, PTD7, PTD5); // mosi, miso, sclk DigitalOut cs(D9); char* Getts() { // 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); cs = 0; spi.write(0x80); // set write register to seconds spi.write(0x00); // send value of zero //cs=1; //cs=0; spi.write(0x81); spi.write(0x00); //write reg to minutes //cs=1; //cs=0; spi.write(0x82); spi.write(0x15); //write reg to hours (00-23) spi.write(0x83); spi.write(0x07); //write reg to day (1-7) spi.write(0x84); spi.write(0x20); //write reg to date(01-31) spi.write(0x85); spi.write(0x12); //write reg to mnth(01-12) spi.write(0x86); spi.write(0x12); //write reg to year(00-99) cs=1; // Receive the contents of the seconds register cs=0; spi.write(0x00); // set read register to seconds int seconds = spi.write(0x00); // read the value by sending dummy byte //cs=1; //cs=0; spi.write(0x01); int minutes =spi.write(0x01); //cs=1; //cs=0; spi.write(0x02); int hours =spi.write(0x01); spi.write(0x03); int day =spi.write(0x01); spi.write(0x04); int date =spi.write(0x01); spi.write(0x05); int month =spi.write(0x01); spi.write(0x06); int year =spi.write(0x01); //This cs=1 is to make the chipselect line high to "deselect" the slave in our case RTC cs = 1; //This printf function is to check the timestamp function in the terminal output printf("timestamp as = %X : %X : %X : %X : %X : %X : %X\n\r", hours,minutes,seconds,day,date,month,year); printf("b4 returning tmpstmp is : %s\n",getname(year,month,date,day,hours,minutes,seconds)); return(getname(year,month,date,day,hours,minutes,seconds)); } 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,"%d%d%d%d%d%d%d",year1,month1,date1,day1,hours1,minutes1,seconds1); return(time); } int hexint(int a) { a=(a/16)*10+(a%16); return a; }