Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of rtc_justtest by
main.cpp@1:21efeeb9b679, 2014-12-21 (annotated)
- Committer:
- z3on
- Date:
- Sun Dec 21 09:06:20 2014 +0000
- Revision:
- 1:21efeeb9b679
- Parent:
- 0:a07e5a4c94bb
cs for writing
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| pradeepvk2208 | 0:a07e5a4c94bb | 1 | #include "mbed.h" |
| pradeepvk2208 | 0:a07e5a4c94bb | 2 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 3 | SPI spi(PTD6, PTD7, PTD5); // mosi, miso, sclk |
| pradeepvk2208 | 0:a07e5a4c94bb | 4 | DigitalOut cs(D9); |
| pradeepvk2208 | 0:a07e5a4c94bb | 5 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 6 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 7 | int main() |
| pradeepvk2208 | 0:a07e5a4c94bb | 8 | { |
| pradeepvk2208 | 0:a07e5a4c94bb | 9 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 10 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 11 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 12 | // Setup the spi for 8 bit data, high steady state clock, |
| pradeepvk2208 | 0:a07e5a4c94bb | 13 | // second edge capture, with a 1MHz clock rate |
| pradeepvk2208 | 0:a07e5a4c94bb | 14 | spi.format(8,3); |
| z3on | 1:21efeeb9b679 | 15 | spi.frequency(3000000); |
| pradeepvk2208 | 0:a07e5a4c94bb | 16 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 17 | cs = 0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 18 | spi.write(0x80); // set write register to seconds |
| pradeepvk2208 | 0:a07e5a4c94bb | 19 | spi.write(0x01); // send value of zero |
| pradeepvk2208 | 0:a07e5a4c94bb | 20 | |
| z3on | 1:21efeeb9b679 | 21 | cs=1; |
| z3on | 1:21efeeb9b679 | 22 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 23 | spi.write(0x81); |
| pradeepvk2208 | 0:a07e5a4c94bb | 24 | spi.write(0x58); //write reg to minutes |
| pradeepvk2208 | 0:a07e5a4c94bb | 25 | |
| z3on | 1:21efeeb9b679 | 26 | cs=1; |
| z3on | 1:21efeeb9b679 | 27 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 28 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 29 | spi.write(0x82); |
| pradeepvk2208 | 0:a07e5a4c94bb | 30 | spi.write(0x01); //write reg to hours (00-23) |
| pradeepvk2208 | 0:a07e5a4c94bb | 31 | |
| z3on | 1:21efeeb9b679 | 32 | cs=1; |
| z3on | 1:21efeeb9b679 | 33 | cs=0; |
| z3on | 1:21efeeb9b679 | 34 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 35 | spi.write(0x83); |
| pradeepvk2208 | 0:a07e5a4c94bb | 36 | spi.write(0x01); //write reg to day (1-7) |
| pradeepvk2208 | 0:a07e5a4c94bb | 37 | |
| z3on | 1:21efeeb9b679 | 38 | cs=1; |
| z3on | 1:21efeeb9b679 | 39 | cs=0; |
| z3on | 1:21efeeb9b679 | 40 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 41 | spi.write(0x84); |
| pradeepvk2208 | 0:a07e5a4c94bb | 42 | spi.write(0x01); //write reg to date(01-31) |
| pradeepvk2208 | 0:a07e5a4c94bb | 43 | |
| z3on | 1:21efeeb9b679 | 44 | cs=1; |
| z3on | 1:21efeeb9b679 | 45 | cs=0; |
| z3on | 1:21efeeb9b679 | 46 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 47 | spi.write(0x85); |
| pradeepvk2208 | 0:a07e5a4c94bb | 48 | spi.write(0x01); //write reg to mnth(01-12) |
| pradeepvk2208 | 0:a07e5a4c94bb | 49 | |
| z3on | 1:21efeeb9b679 | 50 | cs=1; |
| z3on | 1:21efeeb9b679 | 51 | cs=0; |
| z3on | 1:21efeeb9b679 | 52 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 53 | spi.write(0x86); |
| pradeepvk2208 | 0:a07e5a4c94bb | 54 | spi.write(0x01); //write reg to year(00-99) |
| pradeepvk2208 | 0:a07e5a4c94bb | 55 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 56 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 57 | // Receive the contents of the seconds register |
| pradeepvk2208 | 0:a07e5a4c94bb | 58 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 59 | for(int i=0;i<1000000;i++){ |
| pradeepvk2208 | 0:a07e5a4c94bb | 60 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 61 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 62 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 63 | spi.write(0x00); // set read register to seconds |
| pradeepvk2208 | 0:a07e5a4c94bb | 64 | int seconds = spi.write(0x00); // read the value by sending dummy byte |
| pradeepvk2208 | 0:a07e5a4c94bb | 65 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 66 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 67 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 68 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 69 | spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 70 | int minutes =spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 71 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 72 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 73 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 74 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 75 | spi.write(0x02); |
| pradeepvk2208 | 0:a07e5a4c94bb | 76 | int hours =spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 77 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 78 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 79 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 80 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 81 | spi.write(0x03); |
| pradeepvk2208 | 0:a07e5a4c94bb | 82 | int day =spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 83 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 84 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 85 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 86 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 87 | spi.write(0x04); |
| pradeepvk2208 | 0:a07e5a4c94bb | 88 | int date =spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 89 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 90 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 91 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 92 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 93 | spi.write(0x05); |
| pradeepvk2208 | 0:a07e5a4c94bb | 94 | int mnth =spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 95 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 96 | cs=1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 97 | cs=0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 98 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 99 | spi.write(0x06); |
| pradeepvk2208 | 0:a07e5a4c94bb | 100 | int year =spi.write(0x01); |
| pradeepvk2208 | 0:a07e5a4c94bb | 101 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 102 | //This cs=1 is to make the chipselect line high to "deselect" the slave in our case RTC |
| pradeepvk2208 | 0:a07e5a4c94bb | 103 | cs = 1; |
| pradeepvk2208 | 0:a07e5a4c94bb | 104 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 105 | //This printf function is to check the timestamp function in the terminal output |
| pradeepvk2208 | 0:a07e5a4c94bb | 106 | printf("timestamp as = %X : %X : %X : %X : %X : %X : %X\n\r", year,mnth,date,day,hours,minutes,seconds); |
| pradeepvk2208 | 0:a07e5a4c94bb | 107 | } |
| pradeepvk2208 | 0:a07e5a4c94bb | 108 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 109 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 110 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 111 | return 0; |
| pradeepvk2208 | 0:a07e5a4c94bb | 112 | |
| pradeepvk2208 | 0:a07e5a4c94bb | 113 | } |
