Time Machine

Dependencies:   TextLCD mbed DebounceIn

Committer:
cicklaus
Date:
Mon May 28 07:56:43 2012 +0000
Revision:
0:e37321609004
Child:
1:09c825e59a47

        

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