a program to display timer in hh:mm:ss format. revisions will be made to set-up timer, alarm etc.

Dependencies:   mbed

Committer:
kaushalpkk
Date:
Mon Mar 28 15:51:48 2011 +0000
Revision:
0:3330756dbb42

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaushalpkk 0:3330756dbb42 1 #include "mbed.h"
kaushalpkk 0:3330756dbb42 2
kaushalpkk 0:3330756dbb42 3 //LEDs to indicate key presses
kaushalpkk 0:3330756dbb42 4 DigitalOut myled1(LED1);
kaushalpkk 0:3330756dbb42 5 DigitalOut myled2(LED2);
kaushalpkk 0:3330756dbb42 6 DigitalOut myled3(LED3);
kaushalpkk 0:3330756dbb42 7
kaushalpkk 0:3330756dbb42 8 //init serial trx throught USB
kaushalpkk 0:3330756dbb42 9 Serial pc(USBTX, USBRX);
kaushalpkk 0:3330756dbb42 10
kaushalpkk 0:3330756dbb42 11 //init 1 sec timer
kaushalpkk 0:3330756dbb42 12 Ticker secs;
kaushalpkk 0:3330756dbb42 13
kaushalpkk 0:3330756dbb42 14 //variables
kaushalpkk 0:3330756dbb42 15 char x,y,z,t,u,min = 0,sec = 0,hr = 0;
kaushalpkk 0:3330756dbb42 16
kaushalpkk 0:3330756dbb42 17 //mytick give a second of delay and print the time out.
kaushalpkk 0:3330756dbb42 18 void mytick() {
kaushalpkk 0:3330756dbb42 19 sec++;
kaushalpkk 0:3330756dbb42 20 if (sec >= 59) {
kaushalpkk 0:3330756dbb42 21 sec = 0;
kaushalpkk 0:3330756dbb42 22 min ++;
kaushalpkk 0:3330756dbb42 23 if (min >= 59) {
kaushalpkk 0:3330756dbb42 24 min = 0;
kaushalpkk 0:3330756dbb42 25 hr ++;
kaushalpkk 0:3330756dbb42 26 if (hr >= 23) {
kaushalpkk 0:3330756dbb42 27 hr = 0;
kaushalpkk 0:3330756dbb42 28 }
kaushalpkk 0:3330756dbb42 29 }
kaushalpkk 0:3330756dbb42 30 }
kaushalpkk 0:3330756dbb42 31 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 32 }
kaushalpkk 0:3330756dbb42 33
kaushalpkk 0:3330756dbb42 34 //software entry point
kaushalpkk 0:3330756dbb42 35 void main(void){
kaushalpkk 0:3330756dbb42 36 //print general details
kaushalpkk 0:3330756dbb42 37 pc.printf("hour up/down = q/a\n\r");
kaushalpkk 0:3330756dbb42 38 pc.printf("minute up/down = w/s\n\r");
kaushalpkk 0:3330756dbb42 39 pc.printf("second up/down = e/d\r\n\n\n");
kaushalpkk 0:3330756dbb42 40 //activate the timer
kaushalpkk 0:3330756dbb42 41 secs.attach(&mytick,1);
kaushalpkk 0:3330756dbb42 42
kaushalpkk 0:3330756dbb42 43 //do forever
kaushalpkk 0:3330756dbb42 44 while (1) {
kaushalpkk 0:3330756dbb42 45
kaushalpkk 0:3330756dbb42 46 myled1 = 0;
kaushalpkk 0:3330756dbb42 47 myled2 = 0;
kaushalpkk 0:3330756dbb42 48 myled3 = 0;
kaushalpkk 0:3330756dbb42 49 //if any key is pressed, enter this portion of code
kaushalpkk 0:3330756dbb42 50 if (pc.readable() == 1) {
kaushalpkk 0:3330756dbb42 51 //get the character
kaushalpkk 0:3330756dbb42 52 char ch = pc.getc();
kaushalpkk 0:3330756dbb42 53 switch (ch) {
kaushalpkk 0:3330756dbb42 54 case 'q':
kaushalpkk 0:3330756dbb42 55 if (hr >= 23)
kaushalpkk 0:3330756dbb42 56 hr =0;
kaushalpkk 0:3330756dbb42 57 myled1 = 1;
kaushalpkk 0:3330756dbb42 58 hr++;
kaushalpkk 0:3330756dbb42 59 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 60 break;
kaushalpkk 0:3330756dbb42 61 case 'a':
kaushalpkk 0:3330756dbb42 62 if (hr >= 23)
kaushalpkk 0:3330756dbb42 63 hr =0;
kaushalpkk 0:3330756dbb42 64 myled1 = 1;
kaushalpkk 0:3330756dbb42 65 hr--;
kaushalpkk 0:3330756dbb42 66 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 67 break;
kaushalpkk 0:3330756dbb42 68 case 'w':
kaushalpkk 0:3330756dbb42 69 if (min >= 59)
kaushalpkk 0:3330756dbb42 70 min =0;
kaushalpkk 0:3330756dbb42 71 myled2 = 1;
kaushalpkk 0:3330756dbb42 72 min++;
kaushalpkk 0:3330756dbb42 73 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 74 break;
kaushalpkk 0:3330756dbb42 75 case 's':
kaushalpkk 0:3330756dbb42 76 if (min >= 59)
kaushalpkk 0:3330756dbb42 77 min =0;
kaushalpkk 0:3330756dbb42 78 myled2 = 1;
kaushalpkk 0:3330756dbb42 79 min--;
kaushalpkk 0:3330756dbb42 80 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 81 break;
kaushalpkk 0:3330756dbb42 82 case 'e':
kaushalpkk 0:3330756dbb42 83 if (sec >= 59)
kaushalpkk 0:3330756dbb42 84 sec =0;
kaushalpkk 0:3330756dbb42 85 myled3 = 1;
kaushalpkk 0:3330756dbb42 86 sec++;
kaushalpkk 0:3330756dbb42 87 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 88 break;
kaushalpkk 0:3330756dbb42 89 case 'd':
kaushalpkk 0:3330756dbb42 90 if (sec >= 59)
kaushalpkk 0:3330756dbb42 91 sec =0;
kaushalpkk 0:3330756dbb42 92 myled3 = 1;
kaushalpkk 0:3330756dbb42 93 sec--;
kaushalpkk 0:3330756dbb42 94 pc.printf(" %d:%d:%d \r",hr,min,sec);
kaushalpkk 0:3330756dbb42 95 break;
kaushalpkk 0:3330756dbb42 96 }
kaushalpkk 0:3330756dbb42 97 }
kaushalpkk 0:3330756dbb42 98 }
kaushalpkk 0:3330756dbb42 99 }