Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@5:fc218b8312eb, 2019-05-22 (annotated)
- Committer:
- hafizul_arif
- Date:
- Wed May 22 16:55:14 2019 +0000
- Revision:
- 5:fc218b8312eb
- Parent:
- 4:61d3a7c1b411
- Child:
- 6:167533262100
Add alarm clock
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mmlhein | 4:61d3a7c1b411 | 1 | #include "mbed.h" |
| mmlhein | 4:61d3a7c1b411 | 2 | #include "TextLCD.h" |
| mmlhein | 4:61d3a7c1b411 | 3 | |
| mmlhein | 4:61d3a7c1b411 | 4 | TextLCD lcd(p19, p20, p21, p22, p23, p24); |
| hafizul_arif | 5:fc218b8312eb | 5 | Ticker blinker_cursor, blinker_numer, blinker_menu, clock_viewer, check_alarm; |
| mmlhein | 4:61d3a7c1b411 | 6 | // Initially we set joystick to intterupt. |
| mmlhein | 4:61d3a7c1b411 | 7 | InterruptIn joycenter(p14); |
| mmlhein | 4:61d3a7c1b411 | 8 | InterruptIn up(p15); |
| mmlhein | 4:61d3a7c1b411 | 9 | InterruptIn down(p12); |
| mmlhein | 4:61d3a7c1b411 | 10 | InterruptIn left(p13); |
| mmlhein | 4:61d3a7c1b411 | 11 | InterruptIn right(p16); |
| mmlhein | 4:61d3a7c1b411 | 12 | Serial pc(USBTX, USBRX); // tx, rx |
| mmlhein | 4:61d3a7c1b411 | 13 | |
| hafizul_arif | 5:fc218b8312eb | 14 | int row, col, r_hour, r_min, r_sec, r_apm, epoch, alarm_hour,alarm_min,alarm_sec,alarm_apm; |
| hafizul_arif | 5:fc218b8312eb | 15 | bool state_init, state_menu, state_alarm, alarm_up; |
| hafizul_arif | 5:fc218b8312eb | 16 | |
| hafizul_arif | 5:fc218b8312eb | 17 | |
| hafizul_arif | 5:fc218b8312eb | 18 | void show_menu(){ |
| hafizul_arif | 5:fc218b8312eb | 19 | if(alarm_up){ |
| hafizul_arif | 5:fc218b8312eb | 20 | lcd.locate(2,1); |
| hafizul_arif | 5:fc218b8312eb | 21 | lcd.printf("*"); |
| hafizul_arif | 5:fc218b8312eb | 22 | }else { |
| hafizul_arif | 5:fc218b8312eb | 23 | lcd.locate(2,1); |
| hafizul_arif | 5:fc218b8312eb | 24 | lcd.printf(" "); |
| hafizul_arif | 5:fc218b8312eb | 25 | } |
| hafizul_arif | 5:fc218b8312eb | 26 | lcd.locate(3,1); |
| hafizul_arif | 5:fc218b8312eb | 27 | lcd.printf("Alarm"); |
| hafizul_arif | 5:fc218b8312eb | 28 | lcd.locate(9,1); |
| hafizul_arif | 5:fc218b8312eb | 29 | lcd.printf("Set"); |
| hafizul_arif | 5:fc218b8312eb | 30 | |
| hafizul_arif | 5:fc218b8312eb | 31 | |
| hafizul_arif | 5:fc218b8312eb | 32 | } |
| hafizul_arif | 5:fc218b8312eb | 33 | |
| hafizul_arif | 5:fc218b8312eb | 34 | //Function alarm_chk is in progress |
| hafizul_arif | 5:fc218b8312eb | 35 | void alarm_chk(){ |
| hafizul_arif | 5:fc218b8312eb | 36 | |
| hafizul_arif | 5:fc218b8312eb | 37 | char buffer_hour[32],buffer_min[32],buffer_sec[32],buffer_apm[32]; |
| hafizul_arif | 5:fc218b8312eb | 38 | char buff_ah[32], buff_am[32],buff_as[32],buff_apm[32]; |
| hafizul_arif | 5:fc218b8312eb | 39 | time_t seconds = time(NULL); |
| hafizul_arif | 5:fc218b8312eb | 40 | strftime(buffer_hour, 32, "%I", localtime(&seconds)); |
| hafizul_arif | 5:fc218b8312eb | 41 | strftime(buffer_min, 32, "%M", localtime(&seconds)); |
| hafizul_arif | 5:fc218b8312eb | 42 | strftime(buffer_sec, 32, "%S", localtime(&seconds)); |
| hafizul_arif | 5:fc218b8312eb | 43 | strftime(buffer_apm, 32, "%p", localtime(&seconds)); |
| hafizul_arif | 5:fc218b8312eb | 44 | sprintf(buff_ah, "%d", alarm_hour); |
| hafizul_arif | 5:fc218b8312eb | 45 | if (buff_ah == buffer_hour){ |
| hafizul_arif | 5:fc218b8312eb | 46 | pc.printf("same lol"); |
| hafizul_arif | 5:fc218b8312eb | 47 | } |
| hafizul_arif | 5:fc218b8312eb | 48 | pc.printf("%d %d\r\n", buff_ah,buffer_hour); |
| hafizul_arif | 5:fc218b8312eb | 49 | |
| hafizul_arif | 5:fc218b8312eb | 50 | //if(int(buffer_hour) == alarm_hour && int (buffer_min) == alarm_min && int (buffer_sec) == alarm_sec && int(buffer_apm) == alarm_apm){ |
| hafizul_arif | 5:fc218b8312eb | 51 | // pc.printf("Alarm ring"); |
| hafizul_arif | 5:fc218b8312eb | 52 | // } |
| hafizul_arif | 5:fc218b8312eb | 53 | |
| hafizul_arif | 5:fc218b8312eb | 54 | |
| hafizul_arif | 5:fc218b8312eb | 55 | // pc.printf("%s,%d ,%d,%d,%d,%d,%d,%d", int(buffer_hour),alarm_hour,int (buffer_min),alarm_min,int (buffer_sec),alarm_sec,int(buffer_apm),alarm_apm); |
| hafizul_arif | 5:fc218b8312eb | 56 | |
| hafizul_arif | 5:fc218b8312eb | 57 | } |
| ebrahimatya | 0:65f054e83dac | 58 | |
| mmlhein | 4:61d3a7c1b411 | 59 | void blink_cursor(){ |
| mmlhein | 4:61d3a7c1b411 | 60 | lcd.locate(col, row); |
| mmlhein | 4:61d3a7c1b411 | 61 | lcd.printf("_"); |
| mmlhein | 4:61d3a7c1b411 | 62 | } |
| mmlhein | 4:61d3a7c1b411 | 63 | void blink_num() |
| ebrahimatya | 0:65f054e83dac | 64 | { |
| mmlhein | 4:61d3a7c1b411 | 65 | |
| mmlhein | 4:61d3a7c1b411 | 66 | if (r_hour > 9){ |
| mmlhein | 4:61d3a7c1b411 | 67 | lcd.locate(3,0); |
| mmlhein | 4:61d3a7c1b411 | 68 | lcd.printf("%d:", r_hour); |
| mmlhein | 4:61d3a7c1b411 | 69 | } |
| mmlhein | 4:61d3a7c1b411 | 70 | else{ |
| mmlhein | 4:61d3a7c1b411 | 71 | lcd.locate(3,0); |
| mmlhein | 4:61d3a7c1b411 | 72 | lcd.printf("0%d:", r_hour); |
| mmlhein | 4:61d3a7c1b411 | 73 | } |
| mmlhein | 4:61d3a7c1b411 | 74 | if (r_min > 9){ |
| mmlhein | 4:61d3a7c1b411 | 75 | lcd.locate(6,0); |
| mmlhein | 4:61d3a7c1b411 | 76 | lcd.printf("%d:", r_min); |
| mmlhein | 4:61d3a7c1b411 | 77 | } |
| mmlhein | 4:61d3a7c1b411 | 78 | else{ |
| mmlhein | 4:61d3a7c1b411 | 79 | lcd.locate(6,0); |
| mmlhein | 4:61d3a7c1b411 | 80 | lcd.printf("0%d:", r_min); |
| mmlhein | 4:61d3a7c1b411 | 81 | } |
| mmlhein | 4:61d3a7c1b411 | 82 | if (r_sec > 9){ |
| mmlhein | 4:61d3a7c1b411 | 83 | lcd.locate(9,0); |
| mmlhein | 4:61d3a7c1b411 | 84 | lcd.printf("%d", r_sec); |
| mmlhein | 4:61d3a7c1b411 | 85 | } |
| mmlhein | 4:61d3a7c1b411 | 86 | else{ |
| mmlhein | 4:61d3a7c1b411 | 87 | lcd.locate(9,0); |
| mmlhein | 4:61d3a7c1b411 | 88 | lcd.printf("0%d", r_sec); |
| mmlhein | 4:61d3a7c1b411 | 89 | } |
| mmlhein | 4:61d3a7c1b411 | 90 | lcd.locate(12,0); |
| mmlhein | 4:61d3a7c1b411 | 91 | if (r_apm ==0) |
| mmlhein | 4:61d3a7c1b411 | 92 | lcd.printf("AM"); |
| ebrahimatya | 0:65f054e83dac | 93 | else |
| mmlhein | 4:61d3a7c1b411 | 94 | lcd.printf("PM"); |
| mmlhein | 4:61d3a7c1b411 | 95 | lcd.locate(3,1); |
| mmlhein | 4:61d3a7c1b411 | 96 | lcd.printf("Done"); |
| mmlhein | 4:61d3a7c1b411 | 97 | return; |
| ebrahimatya | 0:65f054e83dac | 98 | } |
| ebrahimatya | 0:65f054e83dac | 99 | |
| ebrahimatya | 0:65f054e83dac | 100 | |
| mmlhein | 4:61d3a7c1b411 | 101 | void cursor_left() |
| ebrahimatya | 0:65f054e83dac | 102 | { |
| mmlhein | 4:61d3a7c1b411 | 103 | if(state_init) { |
| mmlhein | 4:61d3a7c1b411 | 104 | if (col >0 && col <13) |
| mmlhein | 4:61d3a7c1b411 | 105 | if (col == 12) |
| mmlhein | 4:61d3a7c1b411 | 106 | col = 10; |
| mmlhein | 4:61d3a7c1b411 | 107 | else if (col ==10) |
| mmlhein | 4:61d3a7c1b411 | 108 | col = 7; |
| mmlhein | 4:61d3a7c1b411 | 109 | else if (col ==7) |
| mmlhein | 4:61d3a7c1b411 | 110 | col = 4; |
| mmlhein | 4:61d3a7c1b411 | 111 | else if (col == 4) { |
| mmlhein | 4:61d3a7c1b411 | 112 | col =3; |
| mmlhein | 4:61d3a7c1b411 | 113 | row =1; |
| mmlhein | 4:61d3a7c1b411 | 114 | } else if (col ==3 && row == 1) { |
| mmlhein | 4:61d3a7c1b411 | 115 | col = 12; |
| mmlhein | 4:61d3a7c1b411 | 116 | row = 0; |
| mmlhein | 4:61d3a7c1b411 | 117 | } else |
| mmlhein | 4:61d3a7c1b411 | 118 | col = 4; |
| mmlhein | 4:61d3a7c1b411 | 119 | else |
| mmlhein | 4:61d3a7c1b411 | 120 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 121 | } else if(state_menu){ |
| hafizul_arif | 5:fc218b8312eb | 122 | |
| hafizul_arif | 5:fc218b8312eb | 123 | if(col == 3){ |
| hafizul_arif | 5:fc218b8312eb | 124 | col = 9; |
| hafizul_arif | 5:fc218b8312eb | 125 | } else if(col == 9){ |
| hafizul_arif | 5:fc218b8312eb | 126 | col = 3; |
| hafizul_arif | 5:fc218b8312eb | 127 | } |
| hafizul_arif | 5:fc218b8312eb | 128 | } else if(state_alarm){ |
| hafizul_arif | 5:fc218b8312eb | 129 | if (col == 12) |
| hafizul_arif | 5:fc218b8312eb | 130 | col = 10; |
| hafizul_arif | 5:fc218b8312eb | 131 | else if (col ==10) |
| hafizul_arif | 5:fc218b8312eb | 132 | col = 7; |
| hafizul_arif | 5:fc218b8312eb | 133 | else if (col ==7) |
| hafizul_arif | 5:fc218b8312eb | 134 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 135 | else if (col == 4) { |
| hafizul_arif | 5:fc218b8312eb | 136 | col =3; |
| hafizul_arif | 5:fc218b8312eb | 137 | row =1; |
| hafizul_arif | 5:fc218b8312eb | 138 | } else if (col ==3 && row == 1) { |
| hafizul_arif | 5:fc218b8312eb | 139 | col = 9; |
| hafizul_arif | 5:fc218b8312eb | 140 | row = 1; |
| hafizul_arif | 5:fc218b8312eb | 141 | } else if( col == 9 && row ==1) { |
| hafizul_arif | 5:fc218b8312eb | 142 | col = 12; |
| hafizul_arif | 5:fc218b8312eb | 143 | row = 0; |
| hafizul_arif | 5:fc218b8312eb | 144 | } else |
| hafizul_arif | 5:fc218b8312eb | 145 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 146 | }else |
| hafizul_arif | 5:fc218b8312eb | 147 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 148 | |
| mmlhein | 4:61d3a7c1b411 | 149 | pc.printf("Cursor left: %i,%i\r\n", col, row); |
| mmlhein | 4:61d3a7c1b411 | 150 | |
| ebrahimatya | 0:65f054e83dac | 151 | } |
| ebrahimatya | 0:65f054e83dac | 152 | |
| mmlhein | 4:61d3a7c1b411 | 153 | |
| mmlhein | 4:61d3a7c1b411 | 154 | void cursor_right() |
| ebrahimatya | 0:65f054e83dac | 155 | { |
| mmlhein | 4:61d3a7c1b411 | 156 | if(state_init) { |
| mmlhein | 4:61d3a7c1b411 | 157 | if (col >0 && col <13) |
| mmlhein | 4:61d3a7c1b411 | 158 | if (col == 12){ |
| mmlhein | 4:61d3a7c1b411 | 159 | col =3; |
| mmlhein | 4:61d3a7c1b411 | 160 | row =1; |
| mmlhein | 4:61d3a7c1b411 | 161 | } |
| mmlhein | 4:61d3a7c1b411 | 162 | |
| mmlhein | 4:61d3a7c1b411 | 163 | else if (col ==10) |
| mmlhein | 4:61d3a7c1b411 | 164 | col = 12; |
| mmlhein | 4:61d3a7c1b411 | 165 | else if (col ==7) |
| mmlhein | 4:61d3a7c1b411 | 166 | col = 10; |
| mmlhein | 4:61d3a7c1b411 | 167 | else if (col == 4) { |
| mmlhein | 4:61d3a7c1b411 | 168 | col = 7; |
| mmlhein | 4:61d3a7c1b411 | 169 | } else if (col ==3 && row == 1) { |
| mmlhein | 4:61d3a7c1b411 | 170 | col = 4; |
| mmlhein | 4:61d3a7c1b411 | 171 | row = 0; |
| mmlhein | 4:61d3a7c1b411 | 172 | } else |
| mmlhein | 4:61d3a7c1b411 | 173 | col = 4; |
| mmlhein | 4:61d3a7c1b411 | 174 | else |
| mmlhein | 4:61d3a7c1b411 | 175 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 176 | }else if(state_menu){ |
| hafizul_arif | 5:fc218b8312eb | 177 | |
| hafizul_arif | 5:fc218b8312eb | 178 | if(col == 3){ |
| hafizul_arif | 5:fc218b8312eb | 179 | col = 9; |
| hafizul_arif | 5:fc218b8312eb | 180 | } else if(col == 9){ |
| hafizul_arif | 5:fc218b8312eb | 181 | col = 3; |
| hafizul_arif | 5:fc218b8312eb | 182 | } |
| hafizul_arif | 5:fc218b8312eb | 183 | }else if(state_alarm){ |
| hafizul_arif | 5:fc218b8312eb | 184 | if (col >0 && col <13) |
| hafizul_arif | 5:fc218b8312eb | 185 | if (col == 12){ |
| hafizul_arif | 5:fc218b8312eb | 186 | col =9; |
| hafizul_arif | 5:fc218b8312eb | 187 | row =1; |
| hafizul_arif | 5:fc218b8312eb | 188 | } |
| hafizul_arif | 5:fc218b8312eb | 189 | |
| hafizul_arif | 5:fc218b8312eb | 190 | else if (col ==10) |
| hafizul_arif | 5:fc218b8312eb | 191 | col = 12; |
| hafizul_arif | 5:fc218b8312eb | 192 | else if (col ==7) |
| hafizul_arif | 5:fc218b8312eb | 193 | col = 10; |
| hafizul_arif | 5:fc218b8312eb | 194 | else if (col == 4) { |
| hafizul_arif | 5:fc218b8312eb | 195 | col = 7; |
| hafizul_arif | 5:fc218b8312eb | 196 | } else if (col ==3 && row == 1) { |
| hafizul_arif | 5:fc218b8312eb | 197 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 198 | row = 0; |
| hafizul_arif | 5:fc218b8312eb | 199 | } else if(col == 9 && row == 1){ |
| hafizul_arif | 5:fc218b8312eb | 200 | col = 3; |
| hafizul_arif | 5:fc218b8312eb | 201 | row = 1; |
| hafizul_arif | 5:fc218b8312eb | 202 | } else |
| hafizul_arif | 5:fc218b8312eb | 203 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 204 | }else |
| hafizul_arif | 5:fc218b8312eb | 205 | col = 4; |
| hafizul_arif | 5:fc218b8312eb | 206 | |
| mmlhein | 4:61d3a7c1b411 | 207 | pc.printf("Cursor right: %i,%i\r\n", col, row); |
| ebrahimatya | 0:65f054e83dac | 208 | } |
| ebrahimatya | 0:65f054e83dac | 209 | |
| mmlhein | 4:61d3a7c1b411 | 210 | void chg_time_up(){ |
| hafizul_arif | 5:fc218b8312eb | 211 | if(state_init){ |
| hafizul_arif | 5:fc218b8312eb | 212 | |
| mmlhein | 4:61d3a7c1b411 | 213 | if (col ==10){ |
| mmlhein | 4:61d3a7c1b411 | 214 | r_sec = r_sec +1; |
| mmlhein | 4:61d3a7c1b411 | 215 | if (r_sec > 59) |
| mmlhein | 4:61d3a7c1b411 | 216 | r_sec = 0; |
| mmlhein | 4:61d3a7c1b411 | 217 | } |
| mmlhein | 4:61d3a7c1b411 | 218 | else if (col ==7){ |
| mmlhein | 4:61d3a7c1b411 | 219 | r_min = r_min + 1; |
| mmlhein | 4:61d3a7c1b411 | 220 | if (r_min > 59) |
| mmlhein | 4:61d3a7c1b411 | 221 | r_min = 0; } |
| mmlhein | 4:61d3a7c1b411 | 222 | else if (col ==4){ |
| mmlhein | 4:61d3a7c1b411 | 223 | r_hour = r_hour + 1; |
| mmlhein | 4:61d3a7c1b411 | 224 | if (r_hour > 12) |
| mmlhein | 4:61d3a7c1b411 | 225 | r_hour = 1;} |
| mmlhein | 4:61d3a7c1b411 | 226 | else if (col == 12){ |
| mmlhein | 4:61d3a7c1b411 | 227 | if(r_apm==0) |
| mmlhein | 4:61d3a7c1b411 | 228 | r_apm=1; |
| mmlhein | 4:61d3a7c1b411 | 229 | else |
| mmlhein | 4:61d3a7c1b411 | 230 | r_apm=0; |
| mmlhein | 4:61d3a7c1b411 | 231 | } |
| mmlhein | 4:61d3a7c1b411 | 232 | else |
| mmlhein | 4:61d3a7c1b411 | 233 | pc.printf("lmfao"); |
| hafizul_arif | 5:fc218b8312eb | 234 | |
| hafizul_arif | 5:fc218b8312eb | 235 | } else if(state_alarm) { |
| hafizul_arif | 5:fc218b8312eb | 236 | |
| hafizul_arif | 5:fc218b8312eb | 237 | |
| hafizul_arif | 5:fc218b8312eb | 238 | if (col ==10){ |
| hafizul_arif | 5:fc218b8312eb | 239 | alarm_sec = alarm_sec +1; |
| hafizul_arif | 5:fc218b8312eb | 240 | if (alarm_sec > 59) |
| hafizul_arif | 5:fc218b8312eb | 241 | alarm_sec = 0; |
| hafizul_arif | 5:fc218b8312eb | 242 | } |
| hafizul_arif | 5:fc218b8312eb | 243 | else if (col ==7){ |
| hafizul_arif | 5:fc218b8312eb | 244 | alarm_min = alarm_min + 1; |
| hafizul_arif | 5:fc218b8312eb | 245 | if (alarm_min > 59) |
| hafizul_arif | 5:fc218b8312eb | 246 | alarm_min = 0; } |
| hafizul_arif | 5:fc218b8312eb | 247 | else if (col ==4){ |
| hafizul_arif | 5:fc218b8312eb | 248 | alarm_hour = alarm_hour + 1; |
| hafizul_arif | 5:fc218b8312eb | 249 | if (alarm_hour > 12) |
| hafizul_arif | 5:fc218b8312eb | 250 | alarm_hour = 1;} |
| hafizul_arif | 5:fc218b8312eb | 251 | else if (col == 12){ |
| hafizul_arif | 5:fc218b8312eb | 252 | if(alarm_apm==0) |
| hafizul_arif | 5:fc218b8312eb | 253 | alarm_apm=1; |
| hafizul_arif | 5:fc218b8312eb | 254 | else |
| hafizul_arif | 5:fc218b8312eb | 255 | alarm_apm=0; |
| hafizul_arif | 5:fc218b8312eb | 256 | } |
| hafizul_arif | 5:fc218b8312eb | 257 | else |
| hafizul_arif | 5:fc218b8312eb | 258 | pc.printf("lmfao"); |
| hafizul_arif | 5:fc218b8312eb | 259 | } |
| mmlhein | 4:61d3a7c1b411 | 260 | pc.printf("\nUP: %d:%d:%d\r\n", r_hour, r_min, r_sec); |
| mmlhein | 4:61d3a7c1b411 | 261 | } |
| mmlhein | 4:61d3a7c1b411 | 262 | void chg_time_down() |
| ebrahimatya | 0:65f054e83dac | 263 | { |
| hafizul_arif | 5:fc218b8312eb | 264 | if(state_init){ |
| mmlhein | 4:61d3a7c1b411 | 265 | if (col ==10){ |
| mmlhein | 4:61d3a7c1b411 | 266 | r_sec = r_sec - 1; |
| mmlhein | 4:61d3a7c1b411 | 267 | if (r_sec < 0) |
| mmlhein | 4:61d3a7c1b411 | 268 | r_sec = 59; |
| mmlhein | 4:61d3a7c1b411 | 269 | } |
| mmlhein | 4:61d3a7c1b411 | 270 | else if (col ==7){ |
| mmlhein | 4:61d3a7c1b411 | 271 | r_min = r_min - 1; |
| mmlhein | 4:61d3a7c1b411 | 272 | if (r_min < 0) |
| mmlhein | 4:61d3a7c1b411 | 273 | r_min = 59;} |
| mmlhein | 4:61d3a7c1b411 | 274 | else if (col ==4){ |
| mmlhein | 4:61d3a7c1b411 | 275 | r_hour = r_hour - 1; |
| mmlhein | 4:61d3a7c1b411 | 276 | if (r_hour < 1) |
| mmlhein | 4:61d3a7c1b411 | 277 | r_hour = 12; } |
| mmlhein | 4:61d3a7c1b411 | 278 | else if (col == 12){ |
| mmlhein | 4:61d3a7c1b411 | 279 | if(r_apm==0) |
| mmlhein | 4:61d3a7c1b411 | 280 | r_apm=1; |
| mmlhein | 4:61d3a7c1b411 | 281 | else |
| mmlhein | 4:61d3a7c1b411 | 282 | r_apm=0; |
| mmlhein | 4:61d3a7c1b411 | 283 | } |
| mmlhein | 4:61d3a7c1b411 | 284 | else |
| mmlhein | 4:61d3a7c1b411 | 285 | pc.printf("lmfao"); |
| hafizul_arif | 5:fc218b8312eb | 286 | } else if(state_alarm){ |
| hafizul_arif | 5:fc218b8312eb | 287 | if (col ==10){ |
| hafizul_arif | 5:fc218b8312eb | 288 | alarm_sec = alarm_sec - 1; |
| hafizul_arif | 5:fc218b8312eb | 289 | if (alarm_sec < 0) |
| hafizul_arif | 5:fc218b8312eb | 290 | alarm_sec = 59; |
| hafizul_arif | 5:fc218b8312eb | 291 | } |
| hafizul_arif | 5:fc218b8312eb | 292 | else if (col ==7){ |
| hafizul_arif | 5:fc218b8312eb | 293 | alarm_min = alarm_min - 1; |
| hafizul_arif | 5:fc218b8312eb | 294 | if (alarm_min < 0) |
| hafizul_arif | 5:fc218b8312eb | 295 | alarm_min = 59;} |
| hafizul_arif | 5:fc218b8312eb | 296 | else if (col ==4){ |
| hafizul_arif | 5:fc218b8312eb | 297 | alarm_hour = alarm_hour - 1; |
| hafizul_arif | 5:fc218b8312eb | 298 | if (alarm_hour < 1) |
| hafizul_arif | 5:fc218b8312eb | 299 | alarm_hour = 12; } |
| hafizul_arif | 5:fc218b8312eb | 300 | else if (col == 12){ |
| hafizul_arif | 5:fc218b8312eb | 301 | if(alarm_apm==0) |
| hafizul_arif | 5:fc218b8312eb | 302 | alarm_apm=1; |
| hafizul_arif | 5:fc218b8312eb | 303 | else |
| hafizul_arif | 5:fc218b8312eb | 304 | alarm_apm=0; |
| hafizul_arif | 5:fc218b8312eb | 305 | } |
| hafizul_arif | 5:fc218b8312eb | 306 | else |
| hafizul_arif | 5:fc218b8312eb | 307 | pc.printf("lmfao"); |
| hafizul_arif | 5:fc218b8312eb | 308 | } |
| hafizul_arif | 5:fc218b8312eb | 309 | |
| mmlhein | 4:61d3a7c1b411 | 310 | pc.printf("\nDOWN: %d:%d:%d\r\n", r_hour, r_min, r_sec); |
| ebrahimatya | 0:65f054e83dac | 311 | } |
| ebrahimatya | 0:65f054e83dac | 312 | |
| hafizul_arif | 5:fc218b8312eb | 313 | |
| hafizul_arif | 5:fc218b8312eb | 314 | |
| hafizul_arif | 5:fc218b8312eb | 315 | |
| hafizul_arif | 5:fc218b8312eb | 316 | void alarm_disp(){ |
| hafizul_arif | 5:fc218b8312eb | 317 | lcd.cls(); |
| hafizul_arif | 5:fc218b8312eb | 318 | if (alarm_hour > 9){ |
| hafizul_arif | 5:fc218b8312eb | 319 | lcd.locate(3,0); |
| hafizul_arif | 5:fc218b8312eb | 320 | lcd.printf("%d:", alarm_hour); |
| hafizul_arif | 5:fc218b8312eb | 321 | } |
| hafizul_arif | 5:fc218b8312eb | 322 | else{ |
| hafizul_arif | 5:fc218b8312eb | 323 | lcd.locate(3,0); |
| hafizul_arif | 5:fc218b8312eb | 324 | lcd.printf("0%d:", alarm_hour); |
| hafizul_arif | 5:fc218b8312eb | 325 | } |
| hafizul_arif | 5:fc218b8312eb | 326 | if (alarm_min > 9){ |
| hafizul_arif | 5:fc218b8312eb | 327 | lcd.locate(6,0); |
| hafizul_arif | 5:fc218b8312eb | 328 | lcd.printf("%d:", alarm_min); |
| hafizul_arif | 5:fc218b8312eb | 329 | } |
| hafizul_arif | 5:fc218b8312eb | 330 | else{ |
| hafizul_arif | 5:fc218b8312eb | 331 | lcd.locate(6,0); |
| hafizul_arif | 5:fc218b8312eb | 332 | lcd.printf("0%d:", alarm_min); |
| hafizul_arif | 5:fc218b8312eb | 333 | } |
| hafizul_arif | 5:fc218b8312eb | 334 | if (alarm_sec > 9){ |
| hafizul_arif | 5:fc218b8312eb | 335 | lcd.locate(9,0); |
| hafizul_arif | 5:fc218b8312eb | 336 | lcd.printf("%d", alarm_sec); |
| hafizul_arif | 5:fc218b8312eb | 337 | } |
| hafizul_arif | 5:fc218b8312eb | 338 | else{ |
| hafizul_arif | 5:fc218b8312eb | 339 | lcd.locate(9,0); |
| hafizul_arif | 5:fc218b8312eb | 340 | lcd.printf("0%d", alarm_sec); |
| hafizul_arif | 5:fc218b8312eb | 341 | } |
| hafizul_arif | 5:fc218b8312eb | 342 | lcd.locate(12,0); |
| hafizul_arif | 5:fc218b8312eb | 343 | if (alarm_apm ==0) |
| hafizul_arif | 5:fc218b8312eb | 344 | lcd.printf("AM"); |
| hafizul_arif | 5:fc218b8312eb | 345 | else |
| hafizul_arif | 5:fc218b8312eb | 346 | lcd.printf("PM"); |
| hafizul_arif | 5:fc218b8312eb | 347 | lcd.locate(3,1); |
| hafizul_arif | 5:fc218b8312eb | 348 | lcd.printf("Off"); |
| hafizul_arif | 5:fc218b8312eb | 349 | lcd.locate(9,1); |
| hafizul_arif | 5:fc218b8312eb | 350 | lcd.printf("On"); |
| hafizul_arif | 5:fc218b8312eb | 351 | return; |
| hafizul_arif | 5:fc218b8312eb | 352 | } |
| hafizul_arif | 5:fc218b8312eb | 353 | |
| hafizul_arif | 5:fc218b8312eb | 354 | void chg_alarm(){ |
| hafizul_arif | 5:fc218b8312eb | 355 | state_alarm = true; |
| hafizul_arif | 5:fc218b8312eb | 356 | state_menu = false; |
| hafizul_arif | 5:fc218b8312eb | 357 | blinker_numer.attach(&alarm_disp,0.5); |
| hafizul_arif | 5:fc218b8312eb | 358 | while(1){ |
| hafizul_arif | 5:fc218b8312eb | 359 | wait(1); |
| hafizul_arif | 5:fc218b8312eb | 360 | if(col == 3 && row ==1){ |
| hafizul_arif | 5:fc218b8312eb | 361 | if(joycenter){ |
| hafizul_arif | 5:fc218b8312eb | 362 | blinker_numer.detach(); |
| hafizul_arif | 5:fc218b8312eb | 363 | state_alarm = false; |
| hafizul_arif | 5:fc218b8312eb | 364 | state_menu = true; |
| hafizul_arif | 5:fc218b8312eb | 365 | alarm_up = false; |
| hafizul_arif | 5:fc218b8312eb | 366 | check_alarm.detach(); |
| hafizul_arif | 5:fc218b8312eb | 367 | break; |
| hafizul_arif | 5:fc218b8312eb | 368 | |
| hafizul_arif | 5:fc218b8312eb | 369 | } |
| hafizul_arif | 5:fc218b8312eb | 370 | } else if(col == 9 && row == 1){ |
| hafizul_arif | 5:fc218b8312eb | 371 | if(joycenter){ |
| hafizul_arif | 5:fc218b8312eb | 372 | alarm_up = true; |
| hafizul_arif | 5:fc218b8312eb | 373 | blinker_numer.detach(); |
| hafizul_arif | 5:fc218b8312eb | 374 | state_alarm = false; |
| hafizul_arif | 5:fc218b8312eb | 375 | state_menu = true; |
| hafizul_arif | 5:fc218b8312eb | 376 | check_alarm.attach(&alarm_chk,1); |
| hafizul_arif | 5:fc218b8312eb | 377 | break; |
| hafizul_arif | 5:fc218b8312eb | 378 | } |
| hafizul_arif | 5:fc218b8312eb | 379 | } |
| hafizul_arif | 5:fc218b8312eb | 380 | } |
| hafizul_arif | 5:fc218b8312eb | 381 | } |
| hafizul_arif | 5:fc218b8312eb | 382 | |
| hafizul_arif | 5:fc218b8312eb | 383 | |
| mmlhein | 4:61d3a7c1b411 | 384 | void setup_init(){ |
| mmlhein | 4:61d3a7c1b411 | 385 | state_init = true; |
| mmlhein | 4:61d3a7c1b411 | 386 | |
| mmlhein | 4:61d3a7c1b411 | 387 | // Change the cursor value. |
| mmlhein | 4:61d3a7c1b411 | 388 | left.rise(&cursor_left); |
| mmlhein | 4:61d3a7c1b411 | 389 | right.rise(&cursor_right); |
| mmlhein | 4:61d3a7c1b411 | 390 | up.rise(&chg_time_up); |
| mmlhein | 4:61d3a7c1b411 | 391 | down.rise(&chg_time_down); |
| mmlhein | 4:61d3a7c1b411 | 392 | blinker_cursor.attach(&blink_cursor, 0.1); |
| mmlhein | 4:61d3a7c1b411 | 393 | blinker_numer.attach(&blink_num, 0.5); |
| mmlhein | 4:61d3a7c1b411 | 394 | while (1){ |
| mmlhein | 4:61d3a7c1b411 | 395 | // This is where, we select "Done", and we press joycenter to end the initial setup. |
| mmlhein | 4:61d3a7c1b411 | 396 | if(col==3 && row==1){ |
| mmlhein | 4:61d3a7c1b411 | 397 | if(joycenter){ |
| mmlhein | 4:61d3a7c1b411 | 398 | blinker_cursor.detach(); |
| mmlhein | 4:61d3a7c1b411 | 399 | blinker_numer.detach(); |
| mmlhein | 4:61d3a7c1b411 | 400 | |
| mmlhein | 4:61d3a7c1b411 | 401 | //Calculate the unix timestamp |
| mmlhein | 4:61d3a7c1b411 | 402 | //1h : 3600, 1m: 60, 1s: 1 |
| mmlhein | 4:61d3a7c1b411 | 403 | if(r_apm==0){// AM |
| mmlhein | 4:61d3a7c1b411 | 404 | if(r_hour ==12) |
| mmlhein | 4:61d3a7c1b411 | 405 | epoch = (0 *3600) + (r_min *60) +(r_sec); |
| mmlhein | 4:61d3a7c1b411 | 406 | else |
| mmlhein | 4:61d3a7c1b411 | 407 | epoch = (r_hour *3600) + (r_min *60) +(r_sec); |
| mmlhein | 4:61d3a7c1b411 | 408 | } |
| mmlhein | 4:61d3a7c1b411 | 409 | else if (r_apm ==1){//PM |
| mmlhein | 4:61d3a7c1b411 | 410 | if(r_hour ==12) |
| mmlhein | 4:61d3a7c1b411 | 411 | epoch = (r_hour *3600) + (r_min *60) +(r_sec); |
| mmlhein | 4:61d3a7c1b411 | 412 | else |
| mmlhein | 4:61d3a7c1b411 | 413 | epoch = 43200+(r_hour *3600) + (r_min *60) +(r_sec); |
| mmlhein | 4:61d3a7c1b411 | 414 | } |
| mmlhein | 4:61d3a7c1b411 | 415 | |
| mmlhein | 4:61d3a7c1b411 | 416 | pc.printf("%d", epoch); |
| mmlhein | 4:61d3a7c1b411 | 417 | state_init = false; |
| mmlhein | 4:61d3a7c1b411 | 418 | break; |
| mmlhein | 4:61d3a7c1b411 | 419 | } |
| mmlhein | 4:61d3a7c1b411 | 420 | } |
| ebrahimatya | 0:65f054e83dac | 421 | } |
| ebrahimatya | 0:65f054e83dac | 422 | } |
| mmlhein | 4:61d3a7c1b411 | 423 | void view_clock() |
| mmlhein | 4:61d3a7c1b411 | 424 | { |
| mmlhein | 4:61d3a7c1b411 | 425 | lcd.locate(3,0); |
| mmlhein | 4:61d3a7c1b411 | 426 | time_t seconds = time(NULL); |
| mmlhein | 4:61d3a7c1b411 | 427 | char buffer[32]; |
| mmlhein | 4:61d3a7c1b411 | 428 | strftime(buffer, 32, "%I:%M:%S %p", localtime(&seconds)); |
| mmlhein | 4:61d3a7c1b411 | 429 | lcd.printf("%s", buffer); |
| hafizul_arif | 5:fc218b8312eb | 430 | show_menu(); |
| hafizul_arif | 5:fc218b8312eb | 431 | |
| mmlhein | 4:61d3a7c1b411 | 432 | } |
| ebrahimatya | 0:65f054e83dac | 433 | |
| hafizul_arif | 5:fc218b8312eb | 434 | void main_menu(){ |
| hafizul_arif | 5:fc218b8312eb | 435 | state_menu = true; |
| hafizul_arif | 5:fc218b8312eb | 436 | |
| hafizul_arif | 5:fc218b8312eb | 437 | left.rise(&cursor_left); |
| hafizul_arif | 5:fc218b8312eb | 438 | right.rise(&cursor_right); |
| hafizul_arif | 5:fc218b8312eb | 439 | blinker_cursor.attach(&blink_cursor, 0.1); |
| hafizul_arif | 5:fc218b8312eb | 440 | |
| hafizul_arif | 5:fc218b8312eb | 441 | while(1){ |
| hafizul_arif | 5:fc218b8312eb | 442 | wait(1); |
| hafizul_arif | 5:fc218b8312eb | 443 | if(col == 3 && row == 1){ |
| hafizul_arif | 5:fc218b8312eb | 444 | if(joycenter){ |
| hafizul_arif | 5:fc218b8312eb | 445 | clock_viewer.detach(); |
| hafizul_arif | 5:fc218b8312eb | 446 | chg_alarm(); |
| hafizul_arif | 5:fc218b8312eb | 447 | clock_viewer.attach(&view_clock,1); |
| hafizul_arif | 5:fc218b8312eb | 448 | |
| hafizul_arif | 5:fc218b8312eb | 449 | } |
| hafizul_arif | 5:fc218b8312eb | 450 | } else if(col == 9 && row ==1){ |
| hafizul_arif | 5:fc218b8312eb | 451 | if(joycenter){ |
| hafizul_arif | 5:fc218b8312eb | 452 | lcd.cls(); |
| hafizul_arif | 5:fc218b8312eb | 453 | lcd.locate(3,1); |
| hafizul_arif | 5:fc218b8312eb | 454 | lcd.printf("OK"); |
| hafizul_arif | 5:fc218b8312eb | 455 | } |
| hafizul_arif | 5:fc218b8312eb | 456 | } |
| hafizul_arif | 5:fc218b8312eb | 457 | } |
| hafizul_arif | 5:fc218b8312eb | 458 | } |
| hafizul_arif | 5:fc218b8312eb | 459 | |
| hafizul_arif | 5:fc218b8312eb | 460 | |
| mmlhein | 4:61d3a7c1b411 | 461 | int main(){ |
| ebrahimatya | 0:65f054e83dac | 462 | |
| mmlhein | 4:61d3a7c1b411 | 463 | |
| mmlhein | 4:61d3a7c1b411 | 464 | // Initial value |
| mmlhein | 4:61d3a7c1b411 | 465 | row =0 ; |
| mmlhein | 4:61d3a7c1b411 | 466 | col=0 ; |
| mmlhein | 4:61d3a7c1b411 | 467 | r_hour=12 ; |
| mmlhein | 4:61d3a7c1b411 | 468 | r_min=0 ; |
| mmlhein | 4:61d3a7c1b411 | 469 | r_sec = 0; |
| mmlhein | 4:61d3a7c1b411 | 470 | r_apm = 0; //0-AM, 1-PM |
| mmlhein | 4:61d3a7c1b411 | 471 | epoch = 0; // 12:00:00 AM |
| mmlhein | 4:61d3a7c1b411 | 472 | |
| mmlhein | 4:61d3a7c1b411 | 473 | setup_init(); |
| mmlhein | 4:61d3a7c1b411 | 474 | set_time(epoch); |
| mmlhein | 4:61d3a7c1b411 | 475 | clock_viewer.attach(&view_clock,1); |
| ebrahimatya | 0:65f054e83dac | 476 | lcd.cls(); |
| hafizul_arif | 5:fc218b8312eb | 477 | main_menu(); |
| hafizul_arif | 5:fc218b8312eb | 478 | |
| ebrahimatya | 0:65f054e83dac | 479 | |
| ebrahimatya | 0:65f054e83dac | 480 | |
| ebrahimatya | 0:65f054e83dac | 481 | |
| ebrahimatya | 0:65f054e83dac | 482 | } |
