Binary clock ; just set the RTC ( you can use http://mbed.org/users/roen/notebook/real-time/ ); format: hours, tens of minutes, minute units ; it uses pwm for leds in order to see leds position if not all of them are on

Dependencies:   mbed

Committer:
iaghici
Date:
Sun Dec 12 20:59:37 2010 +0000
Revision:
0:0a4fa6c1adcd

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iaghici 0:0a4fa6c1adcd 1 #include "mbed.h"
iaghici 0:0a4fa6c1adcd 2 #include <stdio.h>
iaghici 0:0a4fa6c1adcd 3
iaghici 0:0a4fa6c1adcd 4 PwmOut led1(LED4);
iaghici 0:0a4fa6c1adcd 5 PwmOut led2(LED3);
iaghici 0:0a4fa6c1adcd 6 PwmOut led3(LED2);
iaghici 0:0a4fa6c1adcd 7 PwmOut led4(LED1);
iaghici 0:0a4fa6c1adcd 8
iaghici 0:0a4fa6c1adcd 9 void ledoff(void)
iaghici 0:0a4fa6c1adcd 10 { wait(0.6); led4=0.0; led3=0.0; led2=0.0; led1=0.0; wait(0.2); }
iaghici 0:0a4fa6c1adcd 11
iaghici 0:0a4fa6c1adcd 12 void ledon(void)
iaghici 0:0a4fa6c1adcd 13 { led4=0.05; led3=0.05; led2=0.05; led1=0.05; }
iaghici 0:0a4fa6c1adcd 14
iaghici 0:0a4fa6c1adcd 15 int main()
iaghici 0:0a4fa6c1adcd 16 {
iaghici 0:0a4fa6c1adcd 17 float minf;
iaghici 0:0a4fa6c1adcd 18 int ora,min;
iaghici 0:0a4fa6c1adcd 19 char buffer[5];
iaghici 0:0a4fa6c1adcd 20 while (1)
iaghici 0:0a4fa6c1adcd 21 {
iaghici 0:0a4fa6c1adcd 22 time_t seconds = time(NULL);
iaghici 0:0a4fa6c1adcd 23 strftime(buffer, 5, "%I %M", localtime(&seconds));
iaghici 0:0a4fa6c1adcd 24 sscanf (buffer,"%d %d",&ora, &min);
iaghici 0:0a4fa6c1adcd 25
iaghici 0:0a4fa6c1adcd 26 ledon();
iaghici 0:0a4fa6c1adcd 27 if (ora>=8) { led4=0.9 ; ora=ora-8; }
iaghici 0:0a4fa6c1adcd 28 if (ora>=4) { led3=0.9 ; ora=ora-4; }
iaghici 0:0a4fa6c1adcd 29 if (ora>=2) { led2=0.9 ; ora=ora-4; }
iaghici 0:0a4fa6c1adcd 30 if (ora>=1) { led1=0.9 ; ora=ora-1; }
iaghici 0:0a4fa6c1adcd 31
iaghici 0:0a4fa6c1adcd 32 ledoff();
iaghici 0:0a4fa6c1adcd 33 ledon();
iaghici 0:0a4fa6c1adcd 34
iaghici 0:0a4fa6c1adcd 35 if ((min>=10) & (min<20)) { led1=0.9; }
iaghici 0:0a4fa6c1adcd 36 if ((min>=20) & (min<30)) { led2=0.9; }
iaghici 0:0a4fa6c1adcd 37 if ((min>=30) & (min<40)) { led1=0.9 ; led2=0.9; }
iaghici 0:0a4fa6c1adcd 38 if ((min>=40) & (min<50)) { led3=0.9; }
iaghici 0:0a4fa6c1adcd 39 if ((min>=50) & (min<60)) { led3=0.9; led1=0.9; }
iaghici 0:0a4fa6c1adcd 40
iaghici 0:0a4fa6c1adcd 41 ledoff();
iaghici 0:0a4fa6c1adcd 42 ledon();
iaghici 0:0a4fa6c1adcd 43
iaghici 0:0a4fa6c1adcd 44 minf=fmod(min,10.0);
iaghici 0:0a4fa6c1adcd 45 if (minf==1) led1=0.9;
iaghici 0:0a4fa6c1adcd 46 if (minf==2) led2=0.9;
iaghici 0:0a4fa6c1adcd 47 if (minf==3) { led1=0.9; led2=0.9; }
iaghici 0:0a4fa6c1adcd 48 if (minf==4) led3=0.9;
iaghici 0:0a4fa6c1adcd 49 if (minf==5) { led1=0.9; led3=0.9; }
iaghici 0:0a4fa6c1adcd 50 if (minf==6) { led2=0.9; led3=0.9; }
iaghici 0:0a4fa6c1adcd 51 if (minf==7) { led1=0.9; led2=0.9; led3=0.9; }
iaghici 0:0a4fa6c1adcd 52 if (minf==8) led4=0.9;
iaghici 0:0a4fa6c1adcd 53 if (minf==9) { led1=0.9; led4=0.9; }
iaghici 0:0a4fa6c1adcd 54
iaghici 0:0a4fa6c1adcd 55 ledoff();
iaghici 0:0a4fa6c1adcd 56 wait(0.3);
iaghici 0:0a4fa6c1adcd 57
iaghici 0:0a4fa6c1adcd 58 }
iaghici 0:0a4fa6c1adcd 59 }