hi rtc

Dependencies:   mbed

Fork of testing_rtc by saiteja dommeti

Committer:
duke970
Date:
Fri Dec 19 05:01:09 2014 +0000
Revision:
0:cfecb0ebcc63
Child:
1:620887c20cee
RTC test program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duke970 0:cfecb0ebcc63 1 #include "mbed.h"
duke970 0:cfecb0ebcc63 2 SPI spi(PTD6, PTD7, PTD5); // mosi, miso, sclk
duke970 0:cfecb0ebcc63 3 DigitalOut cs(PTA13);
duke970 0:cfecb0ebcc63 4
duke970 0:cfecb0ebcc63 5
duke970 0:cfecb0ebcc63 6 int main()
duke970 0:cfecb0ebcc63 7 {
duke970 0:cfecb0ebcc63 8
duke970 0:cfecb0ebcc63 9
duke970 0:cfecb0ebcc63 10
duke970 0:cfecb0ebcc63 11 // Setup the spi for 8 bit data, high steady state clock,
duke970 0:cfecb0ebcc63 12 // second edge capture, with a 1MHz clock rate
duke970 0:cfecb0ebcc63 13 spi.format(8,3);
duke970 0:cfecb0ebcc63 14 spi.frequency(1000000);
duke970 0:cfecb0ebcc63 15
duke970 0:cfecb0ebcc63 16 // Send the commands to write to test the seconds register
duke970 0:cfecb0ebcc63 17 cs = 0;
duke970 0:cfecb0ebcc63 18 spi.write(0x80); // set write register to seconds
duke970 0:cfecb0ebcc63 19 spi.write(0x00); // send value of one
duke970 0:cfecb0ebcc63 20
duke970 0:cfecb0ebcc63 21 //cs=1;
duke970 0:cfecb0ebcc63 22 //cs=0;
duke970 0:cfecb0ebcc63 23 spi.write(0x81); //write reg to minutes
duke970 0:cfecb0ebcc63 24 spi.write(0x00);
duke970 0:cfecb0ebcc63 25
duke970 0:cfecb0ebcc63 26 //cs=1;
duke970 0:cfecb0ebcc63 27 //cs=0;
duke970 0:cfecb0ebcc63 28
duke970 0:cfecb0ebcc63 29 spi.write(0x82); //write reg to minutes
duke970 0:cfecb0ebcc63 30 spi.write(0x00);
duke970 0:cfecb0ebcc63 31
duke970 0:cfecb0ebcc63 32 cs=1;
duke970 0:cfecb0ebcc63 33 // Receive the contents of the seconds register
duke970 0:cfecb0ebcc63 34
duke970 0:cfecb0ebcc63 35 for(int i=0;i<1000000;i++){
duke970 0:cfecb0ebcc63 36
duke970 0:cfecb0ebcc63 37
duke970 0:cfecb0ebcc63 38 cs=0;
duke970 0:cfecb0ebcc63 39 spi.write(0x00); // set read register to seconds
duke970 0:cfecb0ebcc63 40 int seconds = spi.write(0x00); // read the value
duke970 0:cfecb0ebcc63 41
duke970 0:cfecb0ebcc63 42 //cs=1;
duke970 0:cfecb0ebcc63 43 //cs=0;
duke970 0:cfecb0ebcc63 44
duke970 0:cfecb0ebcc63 45 spi.write(0x01);
duke970 0:cfecb0ebcc63 46 int minutes =spi.write(0x01);
duke970 0:cfecb0ebcc63 47
duke970 0:cfecb0ebcc63 48 //cs=1;
duke970 0:cfecb0ebcc63 49 //cs=0;
duke970 0:cfecb0ebcc63 50
duke970 0:cfecb0ebcc63 51 spi.write(0x02);
duke970 0:cfecb0ebcc63 52 int hours =spi.write(0x01);
duke970 0:cfecb0ebcc63 53
duke970 0:cfecb0ebcc63 54 //This cs=1 is to make the chipselect line high to "deselect" the slave in our case RTC
duke970 0:cfecb0ebcc63 55 cs = 1;
duke970 0:cfecb0ebcc63 56
duke970 0:cfecb0ebcc63 57 //This printf function is to check the timestamp function in the terminal output
duke970 0:cfecb0ebcc63 58 printf("Seconds register = %X : %X : %X \n\r", hours,minutes,seconds);
duke970 0:cfecb0ebcc63 59 }
duke970 0:cfecb0ebcc63 60
duke970 0:cfecb0ebcc63 61 return 0;
duke970 0:cfecb0ebcc63 62
duke970 0:cfecb0ebcc63 63
duke970 0:cfecb0ebcc63 64
duke970 0:cfecb0ebcc63 65 }