jnlj

Dependencies:   mbed-rtos mbed

Fork of TFOX_CDMS_VR_1_0_WORKING by Team Fox

Committer:
sakthipriya
Date:
Tue Jun 16 09:04:53 2015 +0000
Revision:
3:0c3f7c3fabc9
Parent:
2:4c79b3dfef31
Child:
5:c77b49508927
vr 1.0 working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cholletisaik777 0:d6e3d1e21484 1 #include "mbed.h"
cholletisaik777 0:d6e3d1e21484 2 #include "func_head.h"
cholletisaik777 0:d6e3d1e21484 3
cholletisaik777 0:d6e3d1e21484 4 SPI rtc_spi(PTD6,PTD7,PTD5); // MOSI,MISO, CLOCK microcontroller(in order)
pradeepvk2208 2:4c79b3dfef31 5 DigitalOut rtc_cs(PTD4); //Slave Select pin
cholletisaik777 0:d6e3d1e21484 6 //Serial pc(USBTX,USBRX);
cholletisaik777 0:d6e3d1e21484 7
pradeepvk2208 2:4c79b3dfef31 8 void FUNC_INIT_RTC()
pradeepvk2208 2:4c79b3dfef31 9 {
cholletisaik777 0:d6e3d1e21484 10 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 11 rtc_spi.format(8,0);
cholletisaik777 0:d6e3d1e21484 12 rtc_spi.frequency(1000000);
cholletisaik777 0:d6e3d1e21484 13 //clearing the halt bit
cholletisaik777 0:d6e3d1e21484 14 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 15 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 16 rtc_spi.write(0x8C);
cholletisaik777 0:d6e3d1e21484 17 rtc_spi.write(0x00);
cholletisaik777 0:d6e3d1e21484 18
cholletisaik777 0:d6e3d1e21484 19 //clearing the OF bit
cholletisaik777 0:d6e3d1e21484 20 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 21 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 22 rtc_spi.write(0x8F);
cholletisaik777 0:d6e3d1e21484 23 rtc_spi.write(0x00);
cholletisaik777 0:d6e3d1e21484 24
cholletisaik777 0:d6e3d1e21484 25 //century bits
cholletisaik777 0:d6e3d1e21484 26 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 27 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 28 rtc_spi.write(0x80|0x03);
cholletisaik777 0:d6e3d1e21484 29 rtc_spi.write(0x00);
cholletisaik777 0:d6e3d1e21484 30
cholletisaik777 0:d6e3d1e21484 31 //Kick starting the oscillator
cholletisaik777 0:d6e3d1e21484 32 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 33 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 34 rtc_spi.write(0x81); //register address with write flag
cholletisaik777 0:d6e3d1e21484 35 rtc_spi.write(0x80);//enabling stop bit in the seconds register
cholletisaik777 0:d6e3d1e21484 36
cholletisaik777 0:d6e3d1e21484 37 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 38 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 39 rtc_spi.write(0x81);
cholletisaik777 0:d6e3d1e21484 40 rtc_spi.write(0x00);//disabling the stop bit to restart the oscillator
cholletisaik777 0:d6e3d1e21484 41
cholletisaik777 0:d6e3d1e21484 42
cholletisaik777 0:d6e3d1e21484 43 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 44 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 45 rtc_spi.write(0x80);
cholletisaik777 0:d6e3d1e21484 46 rtc_spi.write(0x01); // set milliseconds value to 00
cholletisaik777 0:d6e3d1e21484 47 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 48
cholletisaik777 0:d6e3d1e21484 49 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 50 rtc_spi.write(0x81);
cholletisaik777 0:d6e3d1e21484 51 rtc_spi.write(0x01); //set seconds value to 00
cholletisaik777 0:d6e3d1e21484 52 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 53
cholletisaik777 0:d6e3d1e21484 54 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 55 rtc_spi.write(0x82);
cholletisaik777 0:d6e3d1e21484 56 rtc_spi.write(0x01);//set minutes value to 00
cholletisaik777 0:d6e3d1e21484 57 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 58
cholletisaik777 0:d6e3d1e21484 59 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 60 rtc_spi.write(0x83);
cholletisaik777 0:d6e3d1e21484 61 rtc_spi.write(0x23); //set the hours to 01
cholletisaik777 0:d6e3d1e21484 62 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 63
cholletisaik777 0:d6e3d1e21484 64 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 65 rtc_spi.write(0x84);
cholletisaik777 0:d6e3d1e21484 66 rtc_spi.write(0x01); //set day of the week to 01
cholletisaik777 0:d6e3d1e21484 67 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 68
cholletisaik777 0:d6e3d1e21484 69 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 70 rtc_spi.write(0x85);
cholletisaik777 0:d6e3d1e21484 71 rtc_spi.write(0x31); //set date of the month to 01
cholletisaik777 0:d6e3d1e21484 72 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 73
cholletisaik777 0:d6e3d1e21484 74 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 75 rtc_spi.write(0x86);
cholletisaik777 0:d6e3d1e21484 76 rtc_spi.write(0x12); //set month to 01
cholletisaik777 0:d6e3d1e21484 77 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 78
cholletisaik777 0:d6e3d1e21484 79 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 80 rtc_spi.write(0x87);
cholletisaik777 0:d6e3d1e21484 81 rtc_spi.write(0x01); //set year to 00(2000)
cholletisaik777 0:d6e3d1e21484 82 rtc_cs=1;
sakthipriya 3:0c3f7c3fabc9 83 printf("\n\r rtc initalised \n");
pradeepvk2208 2:4c79b3dfef31 84 }
pradeepvk2208 2:4c79b3dfef31 85
pradeepvk2208 2:4c79b3dfef31 86 uint8_t* FUNC_CDMS_RD_RTC()
sakthipriya 3:0c3f7c3fabc9 87
pradeepvk2208 2:4c79b3dfef31 88 {
cholletisaik777 0:d6e3d1e21484 89 uint8_t response;
sakthipriya 3:0c3f7c3fabc9 90 printf("\n\r Entered rtc\n");
cholletisaik777 0:d6e3d1e21484 91 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 92 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 93 rtc_spi.write(0x00); //reading milliseconds register
cholletisaik777 0:d6e3d1e21484 94 response = rtc_spi.write(0x00); // read the value by sending dummy byte
cholletisaik777 0:d6e3d1e21484 95 uint8_t milliseconds = (uint8_t(response&0xF0)>>4)*10+uint8_t(response&0x0F)*1;
cholletisaik777 0:d6e3d1e21484 96
cholletisaik777 0:d6e3d1e21484 97 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 98 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 99 rtc_spi.write(0x01); //reading seconds register
cholletisaik777 0:d6e3d1e21484 100 response =rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 101 uint8_t seconds = ((response&0x70)>>4)*10+(response&0x0F)*1;
cholletisaik777 0:d6e3d1e21484 102
cholletisaik777 0:d6e3d1e21484 103 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 104 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 105 rtc_spi.write(0x02); //reading minutes register
cholletisaik777 0:d6e3d1e21484 106 response =rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 107 uint8_t minutes = ((response&0xF0)>>4)*10+(response&0x0F)*1;
cholletisaik777 0:d6e3d1e21484 108
cholletisaik777 0:d6e3d1e21484 109 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 110 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 111 rtc_spi.write(0x03); //reading hours register
cholletisaik777 0:d6e3d1e21484 112 response=rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 113 uint8_t hours = ((response&0x30)>>4)*10+(response&0x0F)*1;
cholletisaik777 0:d6e3d1e21484 114
cholletisaik777 0:d6e3d1e21484 115 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 116 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 117 rtc_spi.write(0x04); //reading day's register
cholletisaik777 0:d6e3d1e21484 118 uint8_t day =rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 119
cholletisaik777 0:d6e3d1e21484 120 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 121 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 122 rtc_spi.write(0x05); //reading date register
cholletisaik777 0:d6e3d1e21484 123 response =rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 124 uint8_t date = ((response&0x30)>>4)*10+(response&0x0F)*1;
cholletisaik777 0:d6e3d1e21484 125
cholletisaik777 0:d6e3d1e21484 126 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 127 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 128 rtc_spi.write(0x06); //reading month registe
cholletisaik777 0:d6e3d1e21484 129 response =rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 130 uint8_t month = ((response&0x10)>>4)*10+(response&0x0F)*1;
cholletisaik777 0:d6e3d1e21484 131
cholletisaik777 0:d6e3d1e21484 132 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 133 rtc_cs=0;
cholletisaik777 0:d6e3d1e21484 134 rtc_spi.write(0x07); //reading year's registe
cholletisaik777 0:d6e3d1e21484 135 response =rtc_spi.write(0x01);
cholletisaik777 0:d6e3d1e21484 136 uint8_t year = ((response&0xF0)>>4)*10+(response&0x0F)*1;
sakthipriya 3:0c3f7c3fabc9 137 rtc_cs=1;
cholletisaik777 0:d6e3d1e21484 138 //sprintf(Time_stamp,"%02d%02d%02d%02d%02d%02d%02d%02d",year, month, date, day, hours, minutes, seconds, milliseconds );
cholletisaik777 0:d6e3d1e21484 139 uint8_t Time_stamp[8] = {year, month, date, day, hours, minutes, seconds, milliseconds};
sakthipriya 3:0c3f7c3fabc9 140 for(int i= 0; i<8;i++)
sakthipriya 3:0c3f7c3fabc9 141 printf("%d\t",Time_stamp[i]);
cholletisaik777 0:d6e3d1e21484 142 printf("read\r\n");
cholletisaik777 0:d6e3d1e21484 143 return(Time_stamp);
cholletisaik777 0:d6e3d1e21484 144 }
sakthipriya 3:0c3f7c3fabc9 145
sakthipriya 3:0c3f7c3fabc9 146