a program to display timer in hh:mm:ss format. revisions will be made to set-up timer, alarm etc.
main.cpp
- Committer:
- kaushalpkk
- Date:
- 2011-03-28
- Revision:
- 0:3330756dbb42
File content as of revision 0:3330756dbb42:
#include "mbed.h"
//LEDs to indicate key presses
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
//init serial trx throught USB
Serial pc(USBTX, USBRX);
//init 1 sec timer
Ticker secs;
//variables
char x,y,z,t,u,min = 0,sec = 0,hr = 0;
//mytick give a second of delay and print the time out.
void mytick() {
sec++;
if (sec >= 59) {
sec = 0;
min ++;
if (min >= 59) {
min = 0;
hr ++;
if (hr >= 23) {
hr = 0;
}
}
}
pc.printf(" %d:%d:%d \r",hr,min,sec);
}
//software entry point
void main(void){
//print general details
pc.printf("hour up/down = q/a\n\r");
pc.printf("minute up/down = w/s\n\r");
pc.printf("second up/down = e/d\r\n\n\n");
//activate the timer
secs.attach(&mytick,1);
//do forever
while (1) {
myled1 = 0;
myled2 = 0;
myled3 = 0;
//if any key is pressed, enter this portion of code
if (pc.readable() == 1) {
//get the character
char ch = pc.getc();
switch (ch) {
case 'q':
if (hr >= 23)
hr =0;
myled1 = 1;
hr++;
pc.printf(" %d:%d:%d \r",hr,min,sec);
break;
case 'a':
if (hr >= 23)
hr =0;
myled1 = 1;
hr--;
pc.printf(" %d:%d:%d \r",hr,min,sec);
break;
case 'w':
if (min >= 59)
min =0;
myled2 = 1;
min++;
pc.printf(" %d:%d:%d \r",hr,min,sec);
break;
case 's':
if (min >= 59)
min =0;
myled2 = 1;
min--;
pc.printf(" %d:%d:%d \r",hr,min,sec);
break;
case 'e':
if (sec >= 59)
sec =0;
myled3 = 1;
sec++;
pc.printf(" %d:%d:%d \r",hr,min,sec);
break;
case 'd':
if (sec >= 59)
sec =0;
myled3 = 1;
sec--;
pc.printf(" %d:%d:%d \r",hr,min,sec);
break;
}
}
}
}