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
main.cpp@0:0a4fa6c1adcd, 2010-12-12 (annotated)
- Committer:
- iaghici
- Date:
- Sun Dec 12 20:59:37 2010 +0000
- Revision:
- 0:0a4fa6c1adcd
Who changed what in which revision?
User | Revision | Line number | New 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 | } |