Time Machine

Dependencies:   TextLCD mbed DebounceIn

Committer:
cicklaus
Date:
Mon May 28 07:58:25 2012 +0000
Revision:
1:09c825e59a47
Parent:
0:e37321609004

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cicklaus 0:e37321609004 1 // Read from I2C slave at address 0x62
cicklaus 0:e37321609004 2 #include <iostream>
cicklaus 0:e37321609004 3 #include "mbed.h"
cicklaus 1:09c825e59a47 4
cicklaus 0:e37321609004 5 #include <math.h>
cicklaus 0:e37321609004 6 #include <string>
cicklaus 0:e37321609004 7 #define MESSAGE_BUFFER_SIZE 1024
cicklaus 0:e37321609004 8 #include "time.h"
cicklaus 0:e37321609004 9 #include <stdio.h>
cicklaus 0:e37321609004 10 #include <stdlib.h>
cicklaus 0:e37321609004 11
cicklaus 0:e37321609004 12
cicklaus 0:e37321609004 13 Serial pc(USBTX,USBRX);
cicklaus 0:e37321609004 14
cicklaus 0:e37321609004 15 char line= '\n';
cicklaus 0:e37321609004 16 char c;
cicklaus 0:e37321609004 17 char str[40];
cicklaus 0:e37321609004 18 char Hi;
cicklaus 0:e37321609004 19 int i;
cicklaus 0:e37321609004 20 struct tm t;
cicklaus 0:e37321609004 21
cicklaus 0:e37321609004 22
cicklaus 0:e37321609004 23 void message() //Get character (e.g. Printf the Words from serial)
cicklaus 0:e37321609004 24 {
cicklaus 0:e37321609004 25 strcpy (str,&Hi);
cicklaus 0:e37321609004 26 do {
cicklaus 0:e37321609004 27 c=pc.getc();
cicklaus 0:e37321609004 28 pc.putc (c);
cicklaus 0:e37321609004 29 strcat (str,&c);
cicklaus 0:e37321609004 30
cicklaus 0:e37321609004 31 }while (c != ' ');
cicklaus 0:e37321609004 32
cicklaus 0:e37321609004 33
cicklaus 0:e37321609004 34 }
cicklaus 0:e37321609004 35
cicklaus 0:e37321609004 36 void time_setup() {
cicklaus 0:e37321609004 37 pc.baud(9600);
cicklaus 0:e37321609004 38
cicklaus 0:e37321609004 39 pc.printf("SET TIME\n\r");
cicklaus 0:e37321609004 40 pc.printf("--------\n\r\n\r");
cicklaus 0:e37321609004 41
cicklaus 0:e37321609004 42 // get the current time from the terminal
cicklaus 0:e37321609004 43
cicklaus 0:e37321609004 44 do{
cicklaus 0:e37321609004 45 pc.printf("Enter current date and time:\n\r");
cicklaus 0:e37321609004 46 pc.printf("YYYY MM DD HH MM SS\n\r");
cicklaus 0:e37321609004 47
cicklaus 0:e37321609004 48 message();
cicklaus 0:e37321609004 49 t.tm_year = atoi (str);
cicklaus 0:e37321609004 50 message();
cicklaus 0:e37321609004 51 t.tm_mon = atoi (str);
cicklaus 0:e37321609004 52 message();
cicklaus 0:e37321609004 53 t.tm_mday= atoi (str);
cicklaus 0:e37321609004 54 message();
cicklaus 0:e37321609004 55 t.tm_hour = atoi (str);
cicklaus 0:e37321609004 56 message();
cicklaus 0:e37321609004 57 t.tm_min = atoi (str);
cicklaus 0:e37321609004 58 message();
cicklaus 0:e37321609004 59 t.tm_sec = atoi (str);
cicklaus 0:e37321609004 60
cicklaus 0:e37321609004 61 pc.printf("\n\r\n\r");
cicklaus 0:e37321609004 62 pc.printf("Is the time correct [y/n]\n\r");
cicklaus 0:e37321609004 63 c=pc.getc();
cicklaus 0:e37321609004 64 pc.printf("\n\r");
cicklaus 0:e37321609004 65 }while(c !='y');
cicklaus 0:e37321609004 66
cicklaus 0:e37321609004 67 // adjust for tm structure required values
cicklaus 0:e37321609004 68 t.tm_year = t.tm_year - 1900;
cicklaus 0:e37321609004 69 t.tm_mon = t.tm_mon - 1;
cicklaus 0:e37321609004 70
cicklaus 0:e37321609004 71 // set the time
cicklaus 0:e37321609004 72 set_time(mktime(&t));
cicklaus 0:e37321609004 73
cicklaus 0:e37321609004 74 // display the time
cicklaus 0:e37321609004 75 while(1) {
cicklaus 0:e37321609004 76
cicklaus 0:e37321609004 77 time_t seconds = time(NULL);
cicklaus 0:e37321609004 78 pc.printf("Time as a basic string = %s\n\r", ctime(&seconds));
cicklaus 0:e37321609004 79 wait(1);
cicklaus 0:e37321609004 80 }
cicklaus 0:e37321609004 81
cicklaus 0:e37321609004 82
cicklaus 0:e37321609004 83
cicklaus 0:e37321609004 84
cicklaus 0:e37321609004 85
cicklaus 0:e37321609004 86 }
cicklaus 0:e37321609004 87 int main()
cicklaus 0:e37321609004 88 {
cicklaus 0:e37321609004 89 time_setup();
cicklaus 0:e37321609004 90
cicklaus 0:e37321609004 91
cicklaus 0:e37321609004 92
cicklaus 0:e37321609004 93 }