Ebrahim Atya / Mbed 2 deprecated grpass_clock

Dependencies:   mbed TextLCD

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?

UserRevisionLine numberNew 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 }