Shivanand Gowda / Mbed 2 deprecated STM32F103C8T6_Internal_RTC

Dependencies:   mbed-STM32F103C8T6 mbed

Fork of STM32F103C8T6_GPRS_TCP by Shivanand Gowda

Committer:
shivanandgowdakr
Date:
Fri Jul 13 08:22:41 2018 +0000
Revision:
13:bf9a5ca067bf
STM32F103C8T6  BLUE PILL Internal RTC ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shivanandgowdakr 13:bf9a5ca067bf 1 #include "mbed.h"
shivanandgowdakr 13:bf9a5ca067bf 2 #include "Time.h"
shivanandgowdakr 13:bf9a5ca067bf 3 #include <string>
shivanandgowdakr 13:bf9a5ca067bf 4
shivanandgowdakr 13:bf9a5ca067bf 5 int Date_Time_Setting(struct tm curt,char *str)
shivanandgowdakr 13:bf9a5ca067bf 6 {
shivanandgowdakr 13:bf9a5ca067bf 7 int len=0;
shivanandgowdakr 13:bf9a5ca067bf 8 len= strlen(str);
shivanandgowdakr 13:bf9a5ca067bf 9 // printf("len = %d",len);
shivanandgowdakr 13:bf9a5ca067bf 10 if(len < 14)
shivanandgowdakr 13:bf9a5ca067bf 11 return 0;
shivanandgowdakr 13:bf9a5ca067bf 12
shivanandgowdakr 13:bf9a5ca067bf 13 curt.tm_mday = ( str[0]-0x30)*10+(str[1]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 14 curt.tm_mon = ( str[2]-0x30)*10+(str[3]-0x30) -1;
shivanandgowdakr 13:bf9a5ca067bf 15 curt.tm_year = (( str[4]-0x30)*1000 + (str[5]-0x30)*100 + (str[6]-0x30)*10 + (str[7]-0x30)) -1900 ;
shivanandgowdakr 13:bf9a5ca067bf 16
shivanandgowdakr 13:bf9a5ca067bf 17 curt.tm_hour=(str[8]-0x30)*10+(str[9]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 18 curt.tm_min=(str[10]-0x30)*10+(str[11]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 19 curt.tm_sec=(str[12]-0x30)*10+(str[13]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 20
shivanandgowdakr 13:bf9a5ca067bf 21 time_t epoch = mktime(&curt);
shivanandgowdakr 13:bf9a5ca067bf 22 if (epoch == (time_t) -1) {
shivanandgowdakr 13:bf9a5ca067bf 23 error("Error in clock setting\n");
shivanandgowdakr 13:bf9a5ca067bf 24 // Stop here
shivanandgowdakr 13:bf9a5ca067bf 25 }
shivanandgowdakr 13:bf9a5ca067bf 26 set_time(epoch);
shivanandgowdakr 13:bf9a5ca067bf 27 return 1;
shivanandgowdakr 13:bf9a5ca067bf 28 }
shivanandgowdakr 13:bf9a5ca067bf 29
shivanandgowdakr 13:bf9a5ca067bf 30
shivanandgowdakr 13:bf9a5ca067bf 31 int iSetTerminalTime(char *tstring)
shivanandgowdakr 13:bf9a5ca067bf 32 {
shivanandgowdakr 13:bf9a5ca067bf 33 int ret=0;
shivanandgowdakr 13:bf9a5ca067bf 34 struct tm curt;
shivanandgowdakr 13:bf9a5ca067bf 35
shivanandgowdakr 13:bf9a5ca067bf 36 ret = Date_Time_Setting(curt,tstring);
shivanandgowdakr 13:bf9a5ca067bf 37
shivanandgowdakr 13:bf9a5ca067bf 38 if(ret == 1) {
shivanandgowdakr 13:bf9a5ca067bf 39 wait(1);
shivanandgowdakr 13:bf9a5ca067bf 40
shivanandgowdakr 13:bf9a5ca067bf 41 printf("Date Time Set succesfully\r\n");
shivanandgowdakr 13:bf9a5ca067bf 42
shivanandgowdakr 13:bf9a5ca067bf 43 } else {
shivanandgowdakr 13:bf9a5ca067bf 44
shivanandgowdakr 13:bf9a5ca067bf 45 printf("Date Time Set Failure \r\n");
shivanandgowdakr 13:bf9a5ca067bf 46
shivanandgowdakr 13:bf9a5ca067bf 47 }
shivanandgowdakr 13:bf9a5ca067bf 48 wait(2);
shivanandgowdakr 13:bf9a5ca067bf 49
shivanandgowdakr 13:bf9a5ca067bf 50
shivanandgowdakr 13:bf9a5ca067bf 51 return ret;
shivanandgowdakr 13:bf9a5ca067bf 52 }
shivanandgowdakr 13:bf9a5ca067bf 53
shivanandgowdakr 13:bf9a5ca067bf 54
shivanandgowdakr 13:bf9a5ca067bf 55 int chk_time (char *str)
shivanandgowdakr 13:bf9a5ca067bf 56 {
shivanandgowdakr 13:bf9a5ca067bf 57 int HH,MM,SS;
shivanandgowdakr 13:bf9a5ca067bf 58 HH=(str[0]-0x30)*10+(str[1]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 59 MM=(str[2]-0x30)*10+(str[3]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 60 SS=(str[4]-0x30)*10+(str[5]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 61 if ( HH < 0 || HH > 23 || MM < 0 || MM > 59 || SS < 0 || SS > 59 )
shivanandgowdakr 13:bf9a5ca067bf 62 return -1;
shivanandgowdakr 13:bf9a5ca067bf 63 return 1;
shivanandgowdakr 13:bf9a5ca067bf 64 }
shivanandgowdakr 13:bf9a5ca067bf 65
shivanandgowdakr 13:bf9a5ca067bf 66 int chk_date (char *str)
shivanandgowdakr 13:bf9a5ca067bf 67 {
shivanandgowdakr 13:bf9a5ca067bf 68 int epos_date=0,epos_month=0,epos_year=0;
shivanandgowdakr 13:bf9a5ca067bf 69 epos_date = ( str[0]-0x30)*10+(str[1]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 70 epos_month = ( str[2]-0x30)*10+(str[3]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 71 epos_year = ( str[4]-0x30)*1000+ (str[5]-0x30)*100 + (str[6]-0x30)*10 + (str[7]-0x30);
shivanandgowdakr 13:bf9a5ca067bf 72
shivanandgowdakr 13:bf9a5ca067bf 73
shivanandgowdakr 13:bf9a5ca067bf 74 if ( epos_month < 1 || epos_date < 1 || epos_date > 31 || epos_month > 12 || epos_year < 2008 ) return ERROR ;
shivanandgowdakr 13:bf9a5ca067bf 75
shivanandgowdakr 13:bf9a5ca067bf 76 else if(epos_month == 1 || epos_month == 3 || epos_month == 5 || epos_month == 7 || epos_month == 8 || epos_month ==10 ||epos_month == 12) {
shivanandgowdakr 13:bf9a5ca067bf 77
shivanandgowdakr 13:bf9a5ca067bf 78 if (epos_date > 31)
shivanandgowdakr 13:bf9a5ca067bf 79 return -1;
shivanandgowdakr 13:bf9a5ca067bf 80 }
shivanandgowdakr 13:bf9a5ca067bf 81
shivanandgowdakr 13:bf9a5ca067bf 82 else if (epos_month == 4 || epos_month == 6 || epos_month == 9 || epos_month == 11) {
shivanandgowdakr 13:bf9a5ca067bf 83
shivanandgowdakr 13:bf9a5ca067bf 84 if (epos_date > 30)
shivanandgowdakr 13:bf9a5ca067bf 85 return -1;
shivanandgowdakr 13:bf9a5ca067bf 86 }
shivanandgowdakr 13:bf9a5ca067bf 87
shivanandgowdakr 13:bf9a5ca067bf 88 else if (epos_month == 2 )
shivanandgowdakr 13:bf9a5ca067bf 89
shivanandgowdakr 13:bf9a5ca067bf 90 {
shivanandgowdakr 13:bf9a5ca067bf 91 if ( !(epos_year%400) || (epos_year%100 != 0 && epos_year%4==0 ) ) {
shivanandgowdakr 13:bf9a5ca067bf 92 if (epos_date > 29 ) return -1;
shivanandgowdakr 13:bf9a5ca067bf 93 }
shivanandgowdakr 13:bf9a5ca067bf 94
shivanandgowdakr 13:bf9a5ca067bf 95 else if( epos_date > 28 ) return -1;
shivanandgowdakr 13:bf9a5ca067bf 96 }
shivanandgowdakr 13:bf9a5ca067bf 97 return 1;
shivanandgowdakr 13:bf9a5ca067bf 98 }
shivanandgowdakr 13:bf9a5ca067bf 99
shivanandgowdakr 13:bf9a5ca067bf 100 void Get_Date_Time(char *date_string,char *time_string, char *DTSTRING)
shivanandgowdakr 13:bf9a5ca067bf 101 {
shivanandgowdakr 13:bf9a5ca067bf 102 time_t curr_time;
shivanandgowdakr 13:bf9a5ca067bf 103 tm * curr_tm;
shivanandgowdakr 13:bf9a5ca067bf 104 time(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 105 curr_tm = localtime(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 106 strftime(date_string,10,"%Y%m%d",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 107 strftime(time_string,10,"%H%M%S",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 108 strftime(DTSTRING,20,"%Y%m%d%H%M%S",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 109 }
shivanandgowdakr 13:bf9a5ca067bf 110
shivanandgowdakr 13:bf9a5ca067bf 111 void Get_Date_Time(char *date_string,char *time_string)
shivanandgowdakr 13:bf9a5ca067bf 112 {
shivanandgowdakr 13:bf9a5ca067bf 113 time_t curr_time;
shivanandgowdakr 13:bf9a5ca067bf 114 tm * curr_tm;
shivanandgowdakr 13:bf9a5ca067bf 115 time(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 116 curr_tm = localtime(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 117 strftime(date_string,10,"%Y/%m/%d",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 118 strftime(time_string,10,"%H:%M:%S",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 119
shivanandgowdakr 13:bf9a5ca067bf 120
shivanandgowdakr 13:bf9a5ca067bf 121 }
shivanandgowdakr 13:bf9a5ca067bf 122
shivanandgowdakr 13:bf9a5ca067bf 123 void Get_Date_Time()
shivanandgowdakr 13:bf9a5ca067bf 124 {
shivanandgowdakr 13:bf9a5ca067bf 125 time_t curr_time;
shivanandgowdakr 13:bf9a5ca067bf 126 tm * curr_tm;
shivanandgowdakr 13:bf9a5ca067bf 127 time(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 128 char date_string[12]={'\0'};
shivanandgowdakr 13:bf9a5ca067bf 129 char time_string[12]={'\0'};
shivanandgowdakr 13:bf9a5ca067bf 130 curr_tm = localtime(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 131 strftime(date_string,10,"%Y/%m/%d",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 132 strftime(time_string,10,"%H:%M:%S",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 133 printf("Date : %s\r\n",date_string);
shivanandgowdakr 13:bf9a5ca067bf 134 printf("Time : %s\r\n",time_string);
shivanandgowdakr 13:bf9a5ca067bf 135
shivanandgowdakr 13:bf9a5ca067bf 136 }
shivanandgowdakr 13:bf9a5ca067bf 137
shivanandgowdakr 13:bf9a5ca067bf 138 void Get_Date_Time( char *DTSTRING)
shivanandgowdakr 13:bf9a5ca067bf 139 {
shivanandgowdakr 13:bf9a5ca067bf 140 time_t curr_time;
shivanandgowdakr 13:bf9a5ca067bf 141 tm * curr_tm;
shivanandgowdakr 13:bf9a5ca067bf 142 time(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 143 curr_tm = localtime(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 144 strftime(DTSTRING,20,"%Y%m%d%H%M%S",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 145
shivanandgowdakr 13:bf9a5ca067bf 146 }
shivanandgowdakr 13:bf9a5ca067bf 147
shivanandgowdakr 13:bf9a5ca067bf 148 void Get_Date_Time_Trns( char *DTSTRING)
shivanandgowdakr 13:bf9a5ca067bf 149 {
shivanandgowdakr 13:bf9a5ca067bf 150 time_t curr_time;
shivanandgowdakr 13:bf9a5ca067bf 151 tm * curr_tm;
shivanandgowdakr 13:bf9a5ca067bf 152 time(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 153 curr_tm = localtime(&curr_time);
shivanandgowdakr 13:bf9a5ca067bf 154 strftime(DTSTRING,20,"%d%m%Y%H%M%S",curr_tm);
shivanandgowdakr 13:bf9a5ca067bf 155 }
shivanandgowdakr 13:bf9a5ca067bf 156
shivanandgowdakr 13:bf9a5ca067bf 157
shivanandgowdakr 13:bf9a5ca067bf 158