Project

Dependencies:   Hotboards_keypad TextLCD eeprom

Committer:
shivanandgowdakr
Date:
Tue Oct 23 08:12:53 2018 +0000
Revision:
0:194ff03a2e6a
Child:
1:1894419d5def
HI

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shivanandgowdakr 0:194ff03a2e6a 1
shivanandgowdakr 0:194ff03a2e6a 2
shivanandgowdakr 0:194ff03a2e6a 3 #include "mbed.h"
shivanandgowdakr 0:194ff03a2e6a 4 #include "LCDDisplay.h"
shivanandgowdakr 0:194ff03a2e6a 5 #include "i2ceeprom.h"
shivanandgowdakr 0:194ff03a2e6a 6 #include "Hotboards_keypad.h"
shivanandgowdakr 0:194ff03a2e6a 7 #include "Hotboards_keypad.h"
shivanandgowdakr 0:194ff03a2e6a 8
shivanandgowdakr 0:194ff03a2e6a 9 // Defines the keys array with it's respective number of rows & cols,
shivanandgowdakr 0:194ff03a2e6a 10 // and with the value of each key
shivanandgowdakr 0:194ff03a2e6a 11 char keys[ 4 ][ 4 ] =
shivanandgowdakr 0:194ff03a2e6a 12 {
shivanandgowdakr 0:194ff03a2e6a 13 { '1' , '2' , '3' , 'A' },
shivanandgowdakr 0:194ff03a2e6a 14 { '4' , '5' , '6' , 'B' },
shivanandgowdakr 0:194ff03a2e6a 15 { '7' , '8' , '9' , 'C' },
shivanandgowdakr 0:194ff03a2e6a 16 { '*' , '0' , '#' , 'D' }
shivanandgowdakr 0:194ff03a2e6a 17 };
shivanandgowdakr 0:194ff03a2e6a 18
shivanandgowdakr 0:194ff03a2e6a 19 // Defines the pins connected to the rows
shivanandgowdakr 0:194ff03a2e6a 20 DigitalInOut rowPins[ 4 ] = {D4,D5,D6,D7 };
shivanandgowdakr 0:194ff03a2e6a 21 // Defines the pins connected to the cols
shivanandgowdakr 0:194ff03a2e6a 22 DigitalInOut colPins[ 4 ] = { D8,D9,D10,D11};
shivanandgowdakr 0:194ff03a2e6a 23 //connect to the column pinouts of the keypad
shivanandgowdakr 0:194ff03a2e6a 24
shivanandgowdakr 0:194ff03a2e6a 25 Keypad keypad( makeKeymap( keys ), rowPins, colPins,4,4);
shivanandgowdakr 0:194ff03a2e6a 26
shivanandgowdakr 0:194ff03a2e6a 27 DigitalIn Mode1(PC_8);
shivanandgowdakr 0:194ff03a2e6a 28 DigitalIn Mode2(PC_6);
shivanandgowdakr 0:194ff03a2e6a 29 DigitalIn Mode3(PC_5);
shivanandgowdakr 0:194ff03a2e6a 30 //DigitalIn Mode4(PC_5);
shivanandgowdakr 0:194ff03a2e6a 31 //DigitalIn Mode5(PC_8);
shivanandgowdakr 0:194ff03a2e6a 32 //DigitalIn Mode6(PC_6);
shivanandgowdakr 0:194ff03a2e6a 33
shivanandgowdakr 0:194ff03a2e6a 34 bool PasswordStatus=false;
shivanandgowdakr 0:194ff03a2e6a 35 int mode=0;
shivanandgowdakr 0:194ff03a2e6a 36 DigitalIn Start(PA_12);
shivanandgowdakr 0:194ff03a2e6a 37 DigitalIn Stop(PA_11);
shivanandgowdakr 0:194ff03a2e6a 38 DigitalIn Reset(PB_12);
shivanandgowdakr 0:194ff03a2e6a 39
shivanandgowdakr 0:194ff03a2e6a 40
shivanandgowdakr 0:194ff03a2e6a 41 DigitalOut GreenLight(PB_1);
shivanandgowdakr 0:194ff03a2e6a 42 DigitalOut YellowLight(PB_15);
shivanandgowdakr 0:194ff03a2e6a 43 DigitalOut RedLight(PB_14);
shivanandgowdakr 0:194ff03a2e6a 44 DigitalOut SpareLight(PB_13);
shivanandgowdakr 0:194ff03a2e6a 45 DigitalOut Buzzer(PC_13);
shivanandgowdakr 0:194ff03a2e6a 46 DigitalOut led1(LED1);
shivanandgowdakr 0:194ff03a2e6a 47 DigitalOut led2(LED2);
shivanandgowdakr 0:194ff03a2e6a 48 DigitalOut led3(LED3);
shivanandgowdakr 0:194ff03a2e6a 49
shivanandgowdakr 0:194ff03a2e6a 50
shivanandgowdakr 0:194ff03a2e6a 51
shivanandgowdakr 0:194ff03a2e6a 52 uint32_t Current_Mode=0;
shivanandgowdakr 0:194ff03a2e6a 53
shivanandgowdakr 0:194ff03a2e6a 54 float G_time=0;
shivanandgowdakr 0:194ff03a2e6a 55 float Y_time=0;
shivanandgowdakr 0:194ff03a2e6a 56 float R_time=0;
shivanandgowdakr 0:194ff03a2e6a 57
shivanandgowdakr 0:194ff03a2e6a 58 uint8_t StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 59 uint8_t StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 60 uint8_t ReStartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 61 Timer timer;
shivanandgowdakr 0:194ff03a2e6a 62 Timer timerred;
shivanandgowdakr 0:194ff03a2e6a 63 //Thread EveryOneSec;
shivanandgowdakr 0:194ff03a2e6a 64
shivanandgowdakr 0:194ff03a2e6a 65 void keypadEvent(KeypadEvent key);
shivanandgowdakr 0:194ff03a2e6a 66 bool ReadEachLightTime(int mode,char *mmss);
shivanandgowdakr 0:194ff03a2e6a 67 bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime);
shivanandgowdakr 0:194ff03a2e6a 68 void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim);
shivanandgowdakr 0:194ff03a2e6a 69 void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime);
shivanandgowdakr 0:194ff03a2e6a 70 void CalculateTimeElapsed(float TimeElapsed, char *TimeStr);
shivanandgowdakr 0:194ff03a2e6a 71 bool PasswordAcceptance();
shivanandgowdakr 0:194ff03a2e6a 72 int ModeSelectTochange();
shivanandgowdakr 0:194ff03a2e6a 73 void fn(char rkey);
shivanandgowdakr 0:194ff03a2e6a 74 int main()
shivanandgowdakr 0:194ff03a2e6a 75 {
shivanandgowdakr 0:194ff03a2e6a 76 bool start=false;
shivanandgowdakr 0:194ff03a2e6a 77 Mode1.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 78 Mode2.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 79 Mode3.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 80 // Mode4.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 81 // Mode5.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 82 // Mode6.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 83 bool lcdflag=true;
shivanandgowdakr 0:194ff03a2e6a 84 Start.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 85 Stop.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 86 Reset.mode(PullUp);
shivanandgowdakr 0:194ff03a2e6a 87
shivanandgowdakr 0:194ff03a2e6a 88 float timeElapsed=0;
shivanandgowdakr 0:194ff03a2e6a 89 char buff[6]= {'\0'};
shivanandgowdakr 0:194ff03a2e6a 90 char Buffer[17]= {'\0'};
shivanandgowdakr 0:194ff03a2e6a 91 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 92 Display_LCD(0,0," Initialising ");
shivanandgowdakr 0:194ff03a2e6a 93 SpareLight=1;
shivanandgowdakr 0:194ff03a2e6a 94 GreenLight=1;
shivanandgowdakr 0:194ff03a2e6a 95 YellowLight=1;
shivanandgowdakr 0:194ff03a2e6a 96 RedLight=1;
shivanandgowdakr 0:194ff03a2e6a 97 wait(1);
shivanandgowdakr 0:194ff03a2e6a 98 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 99 //Current_Mode=1;
shivanandgowdakr 0:194ff03a2e6a 100 Display_LCD(0,0,"Select Mode Or");
shivanandgowdakr 0:194ff03a2e6a 101 Display_LCD(0,1,"Press Start ");
shivanandgowdakr 0:194ff03a2e6a 102 G_time=20;
shivanandgowdakr 0:194ff03a2e6a 103 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 104 R_time=10;
shivanandgowdakr 0:194ff03a2e6a 105 char key;
shivanandgowdakr 0:194ff03a2e6a 106 while(1) {
shivanandgowdakr 0:194ff03a2e6a 107
shivanandgowdakr 0:194ff03a2e6a 108
shivanandgowdakr 0:194ff03a2e6a 109 key=keypad.getKey();
shivanandgowdakr 0:194ff03a2e6a 110 if(key)
shivanandgowdakr 0:194ff03a2e6a 111 {
shivanandgowdakr 0:194ff03a2e6a 112 if(key=='*')
shivanandgowdakr 0:194ff03a2e6a 113 {
shivanandgowdakr 0:194ff03a2e6a 114 PasswordStatus=PasswordAcceptance();
shivanandgowdakr 0:194ff03a2e6a 115 }
shivanandgowdakr 0:194ff03a2e6a 116 if(PasswordStatus==true)
shivanandgowdakr 0:194ff03a2e6a 117 {
shivanandgowdakr 0:194ff03a2e6a 118 PasswordStatus=false;
shivanandgowdakr 0:194ff03a2e6a 119 mode= ModeSelectTochange();
shivanandgowdakr 0:194ff03a2e6a 120 if(mode>=1 && mode <=6)
shivanandgowdakr 0:194ff03a2e6a 121 {
shivanandgowdakr 0:194ff03a2e6a 122 fn((char)(mode+0x30));
shivanandgowdakr 0:194ff03a2e6a 123 mode=0;
shivanandgowdakr 0:194ff03a2e6a 124 }
shivanandgowdakr 0:194ff03a2e6a 125 else
shivanandgowdakr 0:194ff03a2e6a 126 {
shivanandgowdakr 0:194ff03a2e6a 127 Display_LCD(0,0," Invalid Mode ");
shivanandgowdakr 0:194ff03a2e6a 128 Display_LCD(0,1,"Mode b/w 1-6 ");
shivanandgowdakr 0:194ff03a2e6a 129 wait(2);
shivanandgowdakr 0:194ff03a2e6a 130
shivanandgowdakr 0:194ff03a2e6a 131 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 132 Display_LCD(0,0,"Select Mode Or");
shivanandgowdakr 0:194ff03a2e6a 133 Display_LCD(0,1,"Press Start ");
shivanandgowdakr 0:194ff03a2e6a 134
shivanandgowdakr 0:194ff03a2e6a 135 }
shivanandgowdakr 0:194ff03a2e6a 136 }
shivanandgowdakr 0:194ff03a2e6a 137
shivanandgowdakr 0:194ff03a2e6a 138 else if(key=='A')
shivanandgowdakr 0:194ff03a2e6a 139 {
shivanandgowdakr 0:194ff03a2e6a 140 printf("Started \r\n");
shivanandgowdakr 0:194ff03a2e6a 141 StartButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 142 StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 143 ReStartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 144 printf("Started ************ %d \r\n",StartButtonPressed);
shivanandgowdakr 0:194ff03a2e6a 145 printf("Started ############## %d \r\n",StopButtonPressed);
shivanandgowdakr 0:194ff03a2e6a 146 printf("Started 88888888888888%d \r\n",ReStartButtonPressed);
shivanandgowdakr 0:194ff03a2e6a 147 timer.start();
shivanandgowdakr 0:194ff03a2e6a 148
shivanandgowdakr 0:194ff03a2e6a 149 }
shivanandgowdakr 0:194ff03a2e6a 150
shivanandgowdakr 0:194ff03a2e6a 151 else if(key=='B')
shivanandgowdakr 0:194ff03a2e6a 152 {
shivanandgowdakr 0:194ff03a2e6a 153 StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 154 StopButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 155 ReStartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 156
shivanandgowdakr 0:194ff03a2e6a 157 printf("Stopped \r\n");
shivanandgowdakr 0:194ff03a2e6a 158 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 159 }
shivanandgowdakr 0:194ff03a2e6a 160 else if(key=='C')
shivanandgowdakr 0:194ff03a2e6a 161 {
shivanandgowdakr 0:194ff03a2e6a 162 StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 163 StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 164 ReStartButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 165 timer.stop();
shivanandgowdakr 0:194ff03a2e6a 166 printf("Reset \r\n");
shivanandgowdakr 0:194ff03a2e6a 167 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 168 }
shivanandgowdakr 0:194ff03a2e6a 169
shivanandgowdakr 0:194ff03a2e6a 170 else if(key=='D')
shivanandgowdakr 0:194ff03a2e6a 171 {
shivanandgowdakr 0:194ff03a2e6a 172 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 173 Display_LCD(0,0,"Choose Mode");
shivanandgowdakr 0:194ff03a2e6a 174 wait(0.5);
shivanandgowdakr 0:194ff03a2e6a 175 char tempkey=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 176 if(tempkey>=0x31 && tempkey<=0x36)
shivanandgowdakr 0:194ff03a2e6a 177 {
shivanandgowdakr 0:194ff03a2e6a 178 char Buff[20]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 179 sprintf(Buff,"Current Mode %c",tempkey);
shivanandgowdakr 0:194ff03a2e6a 180 Display_LCD(0,1,Buff);
shivanandgowdakr 0:194ff03a2e6a 181 Current_Mode=(int)(tempkey-0x30);
shivanandgowdakr 0:194ff03a2e6a 182 wait(1);
shivanandgowdakr 0:194ff03a2e6a 183 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 184
shivanandgowdakr 0:194ff03a2e6a 185 }
shivanandgowdakr 0:194ff03a2e6a 186 else
shivanandgowdakr 0:194ff03a2e6a 187 {
shivanandgowdakr 0:194ff03a2e6a 188 Display_LCD(0,0,"Invld Mod Entrd");
shivanandgowdakr 0:194ff03a2e6a 189 wait(1);
shivanandgowdakr 0:194ff03a2e6a 190 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 191
shivanandgowdakr 0:194ff03a2e6a 192 }
shivanandgowdakr 0:194ff03a2e6a 193 }
shivanandgowdakr 0:194ff03a2e6a 194 else
shivanandgowdakr 0:194ff03a2e6a 195 {}
shivanandgowdakr 0:194ff03a2e6a 196
shivanandgowdakr 0:194ff03a2e6a 197 }
shivanandgowdakr 0:194ff03a2e6a 198
shivanandgowdakr 0:194ff03a2e6a 199
shivanandgowdakr 0:194ff03a2e6a 200 // if(Mode1==0)
shivanandgowdakr 0:194ff03a2e6a 201 if(Current_Mode==1)
shivanandgowdakr 0:194ff03a2e6a 202 {
shivanandgowdakr 0:194ff03a2e6a 203 printf("Am here in Mode 1\r\n");
shivanandgowdakr 0:194ff03a2e6a 204 G_time=20;
shivanandgowdakr 0:194ff03a2e6a 205 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 206 R_time=10;
shivanandgowdakr 0:194ff03a2e6a 207
shivanandgowdakr 0:194ff03a2e6a 208 // ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
shivanandgowdakr 0:194ff03a2e6a 209 printf("Current MOde 1 \r\n");
shivanandgowdakr 0:194ff03a2e6a 210 // Display_LCD(0,1,"Mode: 1");
shivanandgowdakr 0:194ff03a2e6a 211 Y_time=Y_time+G_time;
shivanandgowdakr 0:194ff03a2e6a 212 R_time=R_time+Y_time;
shivanandgowdakr 0:194ff03a2e6a 213 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 214 }
shivanandgowdakr 0:194ff03a2e6a 215
shivanandgowdakr 0:194ff03a2e6a 216 // if(Mode2==0)
shivanandgowdakr 0:194ff03a2e6a 217 if(Current_Mode==2)
shivanandgowdakr 0:194ff03a2e6a 218 {
shivanandgowdakr 0:194ff03a2e6a 219
shivanandgowdakr 0:194ff03a2e6a 220 G_time=2;
shivanandgowdakr 0:194ff03a2e6a 221 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 222 R_time=1;
shivanandgowdakr 0:194ff03a2e6a 223 Current_Mode=2;
shivanandgowdakr 0:194ff03a2e6a 224 // ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
shivanandgowdakr 0:194ff03a2e6a 225 printf("Current MOde 2 \r\n");
shivanandgowdakr 0:194ff03a2e6a 226 // Display_LCD(0,1,"Mode: 2");
shivanandgowdakr 0:194ff03a2e6a 227 Y_time=Y_time+G_time;
shivanandgowdakr 0:194ff03a2e6a 228 R_time=R_time+Y_time;
shivanandgowdakr 0:194ff03a2e6a 229 wait(0.1);
shivanandgowdakr 0:194ff03a2e6a 230 }
shivanandgowdakr 0:194ff03a2e6a 231
shivanandgowdakr 0:194ff03a2e6a 232 // if(Mode3==0)
shivanandgowdakr 0:194ff03a2e6a 233 if(Current_Mode==3)
shivanandgowdakr 0:194ff03a2e6a 234 {
shivanandgowdakr 0:194ff03a2e6a 235
shivanandgowdakr 0:194ff03a2e6a 236 G_time=12;
shivanandgowdakr 0:194ff03a2e6a 237 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 238 R_time=10;
shivanandgowdakr 0:194ff03a2e6a 239 Current_Mode=3;
shivanandgowdakr 0:194ff03a2e6a 240 // ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
shivanandgowdakr 0:194ff03a2e6a 241 printf("Current MOde 3 \r\n");
shivanandgowdakr 0:194ff03a2e6a 242 // Display_LCD(0,1,"Mode: 3");
shivanandgowdakr 0:194ff03a2e6a 243 Y_time=Y_time+G_time;
shivanandgowdakr 0:194ff03a2e6a 244 R_time=R_time+Y_time;
shivanandgowdakr 0:194ff03a2e6a 245 wait(0.1);
shivanandgowdakr 0:194ff03a2e6a 246 }
shivanandgowdakr 0:194ff03a2e6a 247
shivanandgowdakr 0:194ff03a2e6a 248
shivanandgowdakr 0:194ff03a2e6a 249 // if(Mode4==0)
shivanandgowdakr 0:194ff03a2e6a 250 if(Current_Mode==4)
shivanandgowdakr 0:194ff03a2e6a 251 {
shivanandgowdakr 0:194ff03a2e6a 252
shivanandgowdakr 0:194ff03a2e6a 253 G_time=20;
shivanandgowdakr 0:194ff03a2e6a 254 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 255 R_time=10;
shivanandgowdakr 0:194ff03a2e6a 256 Current_Mode=4;
shivanandgowdakr 0:194ff03a2e6a 257 // ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
shivanandgowdakr 0:194ff03a2e6a 258 printf("Current MOde 1 \r\n");
shivanandgowdakr 0:194ff03a2e6a 259 Display_LCD(0,1,"Mode: 4");
shivanandgowdakr 0:194ff03a2e6a 260 Y_time=Y_time+G_time;
shivanandgowdakr 0:194ff03a2e6a 261 R_time=R_time+Y_time;
shivanandgowdakr 0:194ff03a2e6a 262 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 263 }
shivanandgowdakr 0:194ff03a2e6a 264 //
shivanandgowdakr 0:194ff03a2e6a 265 if(Current_Mode==5)
shivanandgowdakr 0:194ff03a2e6a 266 {
shivanandgowdakr 0:194ff03a2e6a 267
shivanandgowdakr 0:194ff03a2e6a 268 G_time=2;
shivanandgowdakr 0:194ff03a2e6a 269 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 270 R_time=1;
shivanandgowdakr 0:194ff03a2e6a 271 Current_Mode=5;
shivanandgowdakr 0:194ff03a2e6a 272 printf("Current MOde 2 \r\n");
shivanandgowdakr 0:194ff03a2e6a 273 // ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
shivanandgowdakr 0:194ff03a2e6a 274 Display_LCD(0,1,"Mode: 5");
shivanandgowdakr 0:194ff03a2e6a 275 Y_time=Y_time+G_time;
shivanandgowdakr 0:194ff03a2e6a 276 R_time=R_time+Y_time;
shivanandgowdakr 0:194ff03a2e6a 277 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 278 }
shivanandgowdakr 0:194ff03a2e6a 279 //
shivanandgowdakr 0:194ff03a2e6a 280 // if(Mode6==0)
shivanandgowdakr 0:194ff03a2e6a 281 if(Current_Mode==6)
shivanandgowdakr 0:194ff03a2e6a 282 {
shivanandgowdakr 0:194ff03a2e6a 283
shivanandgowdakr 0:194ff03a2e6a 284 G_time=12;
shivanandgowdakr 0:194ff03a2e6a 285 Y_time=5;
shivanandgowdakr 0:194ff03a2e6a 286 R_time=10;
shivanandgowdakr 0:194ff03a2e6a 287 Current_Mode=3;
shivanandgowdakr 0:194ff03a2e6a 288 printf("Current MOde 3 \r\n");
shivanandgowdakr 0:194ff03a2e6a 289 // ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
shivanandgowdakr 0:194ff03a2e6a 290 Display_LCD(0,1,"Mode: 6");
shivanandgowdakr 0:194ff03a2e6a 291 Y_time=Y_time+G_time;
shivanandgowdakr 0:194ff03a2e6a 292 R_time=R_time+Y_time;
shivanandgowdakr 0:194ff03a2e6a 293 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 294 }
shivanandgowdakr 0:194ff03a2e6a 295
shivanandgowdakr 0:194ff03a2e6a 296
shivanandgowdakr 0:194ff03a2e6a 297 if(Start==0)
shivanandgowdakr 0:194ff03a2e6a 298 {
shivanandgowdakr 0:194ff03a2e6a 299 printf("Started \r\n");
shivanandgowdakr 0:194ff03a2e6a 300 StartButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 301 StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 302 ReStartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 303 printf("Started ************ %d \r\n",StartButtonPressed);
shivanandgowdakr 0:194ff03a2e6a 304 printf("Started ############## %d \r\n",StopButtonPressed);
shivanandgowdakr 0:194ff03a2e6a 305 printf("Started 88888888888888%d \r\n",ReStartButtonPressed);
shivanandgowdakr 0:194ff03a2e6a 306
shivanandgowdakr 0:194ff03a2e6a 307 timer.start();
shivanandgowdakr 0:194ff03a2e6a 308
shivanandgowdakr 0:194ff03a2e6a 309 }
shivanandgowdakr 0:194ff03a2e6a 310 if(Stop==0)
shivanandgowdakr 0:194ff03a2e6a 311 {
shivanandgowdakr 0:194ff03a2e6a 312 StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 313 StopButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 314 ReStartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 315
shivanandgowdakr 0:194ff03a2e6a 316 printf("Stopped \r\n");
shivanandgowdakr 0:194ff03a2e6a 317 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 318
shivanandgowdakr 0:194ff03a2e6a 319 }
shivanandgowdakr 0:194ff03a2e6a 320
shivanandgowdakr 0:194ff03a2e6a 321 if(Reset==0)
shivanandgowdakr 0:194ff03a2e6a 322 {
shivanandgowdakr 0:194ff03a2e6a 323 StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 324 StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 325 ReStartButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 326 timer.stop();
shivanandgowdakr 0:194ff03a2e6a 327 printf("Reset \r\n");
shivanandgowdakr 0:194ff03a2e6a 328 wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 329 }
shivanandgowdakr 0:194ff03a2e6a 330
shivanandgowdakr 0:194ff03a2e6a 331
shivanandgowdakr 0:194ff03a2e6a 332 if(StartButtonPressed==1 && StopButtonPressed==0 && ReStartButtonPressed==0 ) {
shivanandgowdakr 0:194ff03a2e6a 333 printf(" Read Time %f\r\n",timer.read()); //while
shivanandgowdakr 0:194ff03a2e6a 334 if(timer.read()<=G_time ) {
shivanandgowdakr 0:194ff03a2e6a 335
shivanandgowdakr 0:194ff03a2e6a 336 if(lcdflag==true)
shivanandgowdakr 0:194ff03a2e6a 337 {
shivanandgowdakr 0:194ff03a2e6a 338 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 339 lcdflag=false;
shivanandgowdakr 0:194ff03a2e6a 340
shivanandgowdakr 0:194ff03a2e6a 341 }
shivanandgowdakr 0:194ff03a2e6a 342 // timer.start();
shivanandgowdakr 0:194ff03a2e6a 343 printf(" Read Time %f\r\n",timer.read());
shivanandgowdakr 0:194ff03a2e6a 344 Display_LCD(0,0,"Green Light ");
shivanandgowdakr 0:194ff03a2e6a 345 GreenLight=0;
shivanandgowdakr 0:194ff03a2e6a 346 YellowLight=1;
shivanandgowdakr 0:194ff03a2e6a 347 RedLight=1;
shivanandgowdakr 0:194ff03a2e6a 348 wait(0.1);
shivanandgowdakr 0:194ff03a2e6a 349 } else if( timer.read()>G_time && timer.read()<=Y_time ) {
shivanandgowdakr 0:194ff03a2e6a 350 Display_LCD(0,0,"Yellow Light ");
shivanandgowdakr 0:194ff03a2e6a 351
shivanandgowdakr 0:194ff03a2e6a 352 GreenLight=1;
shivanandgowdakr 0:194ff03a2e6a 353 YellowLight=0;
shivanandgowdakr 0:194ff03a2e6a 354 RedLight=1;
shivanandgowdakr 0:194ff03a2e6a 355 wait(0.1);
shivanandgowdakr 0:194ff03a2e6a 356 printf(" Read Time %f\r\n",timer.read());
shivanandgowdakr 0:194ff03a2e6a 357 }
shivanandgowdakr 0:194ff03a2e6a 358
shivanandgowdakr 0:194ff03a2e6a 359 else if( timer.read()>Y_time && timer.read()<=R_time )
shivanandgowdakr 0:194ff03a2e6a 360 {
shivanandgowdakr 0:194ff03a2e6a 361 Display_LCD(0,0,"Red Light ");
shivanandgowdakr 0:194ff03a2e6a 362 GreenLight=1;
shivanandgowdakr 0:194ff03a2e6a 363 YellowLight=1;
shivanandgowdakr 0:194ff03a2e6a 364 RedLight=0;
shivanandgowdakr 0:194ff03a2e6a 365 timerred.start();
shivanandgowdakr 0:194ff03a2e6a 366 wait(0.1);
shivanandgowdakr 0:194ff03a2e6a 367
shivanandgowdakr 0:194ff03a2e6a 368 printf(" Read Time %f\r\n",timer.read());
shivanandgowdakr 0:194ff03a2e6a 369 }
shivanandgowdakr 0:194ff03a2e6a 370 //else if(timer.read()>R_time) {
shivanandgowdakr 0:194ff03a2e6a 371 // Display_LCD(0,0,"Time Lmt Excded ");
shivanandgowdakr 0:194ff03a2e6a 372 // GreenLight=1;
shivanandgowdakr 0:194ff03a2e6a 373 // YellowLight=1;
shivanandgowdakr 0:194ff03a2e6a 374 // RedLight=1;
shivanandgowdakr 0:194ff03a2e6a 375 // wait(0.2);
shivanandgowdakr 0:194ff03a2e6a 376 //
shivanandgowdakr 0:194ff03a2e6a 377 //
shivanandgowdakr 0:194ff03a2e6a 378 // }
shivanandgowdakr 0:194ff03a2e6a 379
shivanandgowdakr 0:194ff03a2e6a 380 }
shivanandgowdakr 0:194ff03a2e6a 381 // timeElapsed=timer.read();
shivanandgowdakr 0:194ff03a2e6a 382 // CalculateTimeElapsed(timeElapsed,buff);
shivanandgowdakr 0:194ff03a2e6a 383 if(StartButtonPressed==0 && StopButtonPressed==1 && ReStartButtonPressed==0 ) {
shivanandgowdakr 0:194ff03a2e6a 384 timeElapsed=timer.read();
shivanandgowdakr 0:194ff03a2e6a 385 timer.stop();
shivanandgowdakr 0:194ff03a2e6a 386
shivanandgowdakr 0:194ff03a2e6a 387 printf("Total Time = %f\r\n",timeElapsed);
shivanandgowdakr 0:194ff03a2e6a 388
shivanandgowdakr 0:194ff03a2e6a 389 CalculateTimeElapsed(timeElapsed,buff);
shivanandgowdakr 0:194ff03a2e6a 390
shivanandgowdakr 0:194ff03a2e6a 391 sprintf(Buffer,"Total Time %s",buff);
shivanandgowdakr 0:194ff03a2e6a 392
shivanandgowdakr 0:194ff03a2e6a 393 Display_LCD(0,0,Buffer);
shivanandgowdakr 0:194ff03a2e6a 394 memset(Buffer,'\0',17);
shivanandgowdakr 0:194ff03a2e6a 395 timeElapsed=timerred.read();
shivanandgowdakr 0:194ff03a2e6a 396 timerred.stop();
shivanandgowdakr 0:194ff03a2e6a 397 CalculateTimeElapsed(timeElapsed,buff);
shivanandgowdakr 0:194ff03a2e6a 398 memset(Buffer,'\0',17);
shivanandgowdakr 0:194ff03a2e6a 399 sprintf(Buffer,"Tim af Red %s",buff);
shivanandgowdakr 0:194ff03a2e6a 400 Display_LCD(0,1,Buffer);
shivanandgowdakr 0:194ff03a2e6a 401 memset(Buffer,'\0',17);
shivanandgowdakr 0:194ff03a2e6a 402
shivanandgowdakr 0:194ff03a2e6a 403 wait(0.1);
shivanandgowdakr 0:194ff03a2e6a 404
shivanandgowdakr 0:194ff03a2e6a 405 // /******************************************/
shivanandgowdakr 0:194ff03a2e6a 406 // ReStartButtonPressed=1;
shivanandgowdakr 0:194ff03a2e6a 407 // StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 408 // StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 409 // /******************************************/
shivanandgowdakr 0:194ff03a2e6a 410 }
shivanandgowdakr 0:194ff03a2e6a 411 if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==1 ) {
shivanandgowdakr 0:194ff03a2e6a 412
shivanandgowdakr 0:194ff03a2e6a 413
shivanandgowdakr 0:194ff03a2e6a 414 Display_LCD(0,0,"Done Resetting");
shivanandgowdakr 0:194ff03a2e6a 415 StartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 416 StopButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 417 ReStartButtonPressed=0;
shivanandgowdakr 0:194ff03a2e6a 418 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 419
shivanandgowdakr 0:194ff03a2e6a 420
shivanandgowdakr 0:194ff03a2e6a 421 }
shivanandgowdakr 0:194ff03a2e6a 422 if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==0 ) {
shivanandgowdakr 0:194ff03a2e6a 423 GreenLight=1;
shivanandgowdakr 0:194ff03a2e6a 424 YellowLight=1;
shivanandgowdakr 0:194ff03a2e6a 425 RedLight=1;
shivanandgowdakr 0:194ff03a2e6a 426 timer.reset();
shivanandgowdakr 0:194ff03a2e6a 427 timerred.reset();
shivanandgowdakr 0:194ff03a2e6a 428
shivanandgowdakr 0:194ff03a2e6a 429 // printf(" Last Line\r\n");
shivanandgowdakr 0:194ff03a2e6a 430 Display_LCD(0,0,"Select Mode Or");
shivanandgowdakr 0:194ff03a2e6a 431 Display_LCD(0,1,"Press Start ");
shivanandgowdakr 0:194ff03a2e6a 432
shivanandgowdakr 0:194ff03a2e6a 433 lcdflag=true;
shivanandgowdakr 0:194ff03a2e6a 434 }
shivanandgowdakr 0:194ff03a2e6a 435
shivanandgowdakr 0:194ff03a2e6a 436 }
shivanandgowdakr 0:194ff03a2e6a 437 }
shivanandgowdakr 0:194ff03a2e6a 438
shivanandgowdakr 0:194ff03a2e6a 439
shivanandgowdakr 0:194ff03a2e6a 440 void ReadTimes()
shivanandgowdakr 0:194ff03a2e6a 441 {
shivanandgowdakr 0:194ff03a2e6a 442 char rkey;
shivanandgowdakr 0:194ff03a2e6a 443 char Str[5]= {'\0'};
shivanandgowdakr 0:194ff03a2e6a 444 char Star[5]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 445 char text[5]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 446 char GreenTime[6]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 447 char YellowTime[6]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 448 char RedTime[6]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 449 bool Staus=false;
shivanandgowdakr 0:194ff03a2e6a 450 rkey=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 451
shivanandgowdakr 0:194ff03a2e6a 452 switch(rkey)
shivanandgowdakr 0:194ff03a2e6a 453 {
shivanandgowdakr 0:194ff03a2e6a 454
shivanandgowdakr 0:194ff03a2e6a 455 case '1':
shivanandgowdakr 0:194ff03a2e6a 456
shivanandgowdakr 0:194ff03a2e6a 457 {
shivanandgowdakr 0:194ff03a2e6a 458 Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 459 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 460 {
shivanandgowdakr 0:194ff03a2e6a 461
shivanandgowdakr 0:194ff03a2e6a 462 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 463 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 464 SaveTimes(1,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 465 }
shivanandgowdakr 0:194ff03a2e6a 466 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 467 }
shivanandgowdakr 0:194ff03a2e6a 468 break;
shivanandgowdakr 0:194ff03a2e6a 469 case '2':
shivanandgowdakr 0:194ff03a2e6a 470 {
shivanandgowdakr 0:194ff03a2e6a 471 Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 472 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 473 {
shivanandgowdakr 0:194ff03a2e6a 474
shivanandgowdakr 0:194ff03a2e6a 475 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 476 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 477 SaveTimes(2,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 478 }
shivanandgowdakr 0:194ff03a2e6a 479 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 480 }
shivanandgowdakr 0:194ff03a2e6a 481 break;
shivanandgowdakr 0:194ff03a2e6a 482 case '3':
shivanandgowdakr 0:194ff03a2e6a 483 {
shivanandgowdakr 0:194ff03a2e6a 484 Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 485 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 486 {
shivanandgowdakr 0:194ff03a2e6a 487
shivanandgowdakr 0:194ff03a2e6a 488 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 489 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 490 SaveTimes(3,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 491 }
shivanandgowdakr 0:194ff03a2e6a 492 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 493 }
shivanandgowdakr 0:194ff03a2e6a 494
shivanandgowdakr 0:194ff03a2e6a 495 break;
shivanandgowdakr 0:194ff03a2e6a 496 case '4':
shivanandgowdakr 0:194ff03a2e6a 497 {
shivanandgowdakr 0:194ff03a2e6a 498 Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 499 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 500 {
shivanandgowdakr 0:194ff03a2e6a 501
shivanandgowdakr 0:194ff03a2e6a 502 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 503 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 504 SaveTimes(4,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 505 }
shivanandgowdakr 0:194ff03a2e6a 506 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 507 }
shivanandgowdakr 0:194ff03a2e6a 508
shivanandgowdakr 0:194ff03a2e6a 509 break;
shivanandgowdakr 0:194ff03a2e6a 510 case '5':
shivanandgowdakr 0:194ff03a2e6a 511 {
shivanandgowdakr 0:194ff03a2e6a 512 Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 513 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 514 {
shivanandgowdakr 0:194ff03a2e6a 515
shivanandgowdakr 0:194ff03a2e6a 516 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 517 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 518 SaveTimes(5,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 519 }
shivanandgowdakr 0:194ff03a2e6a 520 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 521 }
shivanandgowdakr 0:194ff03a2e6a 522
shivanandgowdakr 0:194ff03a2e6a 523 break;
shivanandgowdakr 0:194ff03a2e6a 524
shivanandgowdakr 0:194ff03a2e6a 525 case '6':
shivanandgowdakr 0:194ff03a2e6a 526 {
shivanandgowdakr 0:194ff03a2e6a 527 Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 528 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 529 {
shivanandgowdakr 0:194ff03a2e6a 530
shivanandgowdakr 0:194ff03a2e6a 531 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 532 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 533 SaveTimes(6,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 534 }
shivanandgowdakr 0:194ff03a2e6a 535 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 536 }
shivanandgowdakr 0:194ff03a2e6a 537
shivanandgowdakr 0:194ff03a2e6a 538 break;
shivanandgowdakr 0:194ff03a2e6a 539 default:
shivanandgowdakr 0:194ff03a2e6a 540 {
shivanandgowdakr 0:194ff03a2e6a 541 printf("No Mode\r\n");
shivanandgowdakr 0:194ff03a2e6a 542 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 543 Display_LCD(0,0," InValid Mode ");
shivanandgowdakr 0:194ff03a2e6a 544
shivanandgowdakr 0:194ff03a2e6a 545 }
shivanandgowdakr 0:194ff03a2e6a 546
shivanandgowdakr 0:194ff03a2e6a 547
shivanandgowdakr 0:194ff03a2e6a 548 }
shivanandgowdakr 0:194ff03a2e6a 549
shivanandgowdakr 0:194ff03a2e6a 550
shivanandgowdakr 0:194ff03a2e6a 551 }
shivanandgowdakr 0:194ff03a2e6a 552
shivanandgowdakr 0:194ff03a2e6a 553 bool ReadEachLightTime(int mode,char *mmss,char *lightTimeName)
shivanandgowdakr 0:194ff03a2e6a 554 {
shivanandgowdakr 0:194ff03a2e6a 555 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 556 char Buffer[17]= {'\0'};
shivanandgowdakr 0:194ff03a2e6a 557 char Buffer1[17]="Entr Time Mode:";
shivanandgowdakr 0:194ff03a2e6a 558 char Buffer2[17]="Tim MM:SS";
shivanandgowdakr 0:194ff03a2e6a 559
shivanandgowdakr 0:194ff03a2e6a 560 uint8_t index1=0;
shivanandgowdakr 0:194ff03a2e6a 561 char key='\0';
shivanandgowdakr 0:194ff03a2e6a 562 char str[6]= {'\0'};
shivanandgowdakr 0:194ff03a2e6a 563 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 564 sprintf(Buffer,"%s%d",Buffer1,mode);
shivanandgowdakr 0:194ff03a2e6a 565 Display_LCD(0,0,Buffer);
shivanandgowdakr 0:194ff03a2e6a 566 memset(Buffer,'\0',16);
shivanandgowdakr 0:194ff03a2e6a 567 sprintf(Buffer,"%s %s",lightTimeName,Buffer2);
shivanandgowdakr 0:194ff03a2e6a 568 Display_LCD(0,1,Buffer);
shivanandgowdakr 0:194ff03a2e6a 569
shivanandgowdakr 0:194ff03a2e6a 570 wait(3);
shivanandgowdakr 0:194ff03a2e6a 571 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 572 Display_LCD(0,0,"Press # Set ");
shivanandgowdakr 0:194ff03a2e6a 573 Display_LCD(0,1,"Prss * to Exit ");
shivanandgowdakr 0:194ff03a2e6a 574
shivanandgowdakr 0:194ff03a2e6a 575 key=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 576 if(key=='#') {
shivanandgowdakr 0:194ff03a2e6a 577 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 578 Display_LCD(0,0,"MM:SS ");
shivanandgowdakr 0:194ff03a2e6a 579
shivanandgowdakr 0:194ff03a2e6a 580 index1=0;
shivanandgowdakr 0:194ff03a2e6a 581 while(index1==0 ||(index1<=4 && key !='#' && key!='*')) {
shivanandgowdakr 0:194ff03a2e6a 582 key=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 583 str[index1]=key;
shivanandgowdakr 0:194ff03a2e6a 584 if(index1==2) {
shivanandgowdakr 0:194ff03a2e6a 585 str[index1]=':';
shivanandgowdakr 0:194ff03a2e6a 586 index1++;
shivanandgowdakr 0:194ff03a2e6a 587 str[index1]=key;
shivanandgowdakr 0:194ff03a2e6a 588 }
shivanandgowdakr 0:194ff03a2e6a 589 index1++;
shivanandgowdakr 0:194ff03a2e6a 590 Display_LCD(0,0,"MM:SS ");
shivanandgowdakr 0:194ff03a2e6a 591 Display_LCD(0,1,"MM:SS ");
shivanandgowdakr 0:194ff03a2e6a 592 Display_LCD(0,1,str);
shivanandgowdakr 0:194ff03a2e6a 593 }
shivanandgowdakr 0:194ff03a2e6a 594 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 595 Display_LCD(0,0,"Saving Mode ");
shivanandgowdakr 0:194ff03a2e6a 596 Display_LCD(0,1,str);
shivanandgowdakr 0:194ff03a2e6a 597 memcpy(mmss,str,5);
shivanandgowdakr 0:194ff03a2e6a 598 mmss[6]='\0';
shivanandgowdakr 0:194ff03a2e6a 599 wait(1);
shivanandgowdakr 0:194ff03a2e6a 600 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 601
shivanandgowdakr 0:194ff03a2e6a 602 return true;
shivanandgowdakr 0:194ff03a2e6a 603 } else if(key=='*'){
shivanandgowdakr 0:194ff03a2e6a 604 Display_LCD(0,0,"Mode Not Set ");
shivanandgowdakr 0:194ff03a2e6a 605 Display_LCD(0,1,"Retains PrevMode");
shivanandgowdakr 0:194ff03a2e6a 606 return false;
shivanandgowdakr 0:194ff03a2e6a 607 }
shivanandgowdakr 0:194ff03a2e6a 608 }
shivanandgowdakr 0:194ff03a2e6a 609
shivanandgowdakr 0:194ff03a2e6a 610
shivanandgowdakr 0:194ff03a2e6a 611 bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime)
shivanandgowdakr 0:194ff03a2e6a 612 {
shivanandgowdakr 0:194ff03a2e6a 613 bool Greenflag=false,Yellowflag=false,Redflag=false;
shivanandgowdakr 0:194ff03a2e6a 614 Greenflag=ReadEachLightTime(MODE,Greentime,"Green");
shivanandgowdakr 0:194ff03a2e6a 615
shivanandgowdakr 0:194ff03a2e6a 616 if(Greenflag==true) {
shivanandgowdakr 0:194ff03a2e6a 617
shivanandgowdakr 0:194ff03a2e6a 618 Yellowflag=ReadEachLightTime(MODE,Yellowtime,"Yellow");
shivanandgowdakr 0:194ff03a2e6a 619 if(Yellowflag==true) {
shivanandgowdakr 0:194ff03a2e6a 620
shivanandgowdakr 0:194ff03a2e6a 621 Redflag=ReadEachLightTime(MODE,Redtime,"Red");
shivanandgowdakr 0:194ff03a2e6a 622 if(Redflag==true) {
shivanandgowdakr 0:194ff03a2e6a 623 return true;
shivanandgowdakr 0:194ff03a2e6a 624 } else {
shivanandgowdakr 0:194ff03a2e6a 625 return false;
shivanandgowdakr 0:194ff03a2e6a 626 }
shivanandgowdakr 0:194ff03a2e6a 627 } else {
shivanandgowdakr 0:194ff03a2e6a 628 return false;
shivanandgowdakr 0:194ff03a2e6a 629 }
shivanandgowdakr 0:194ff03a2e6a 630
shivanandgowdakr 0:194ff03a2e6a 631 } else
shivanandgowdakr 0:194ff03a2e6a 632 return false;
shivanandgowdakr 0:194ff03a2e6a 633 }
shivanandgowdakr 0:194ff03a2e6a 634
shivanandgowdakr 0:194ff03a2e6a 635
shivanandgowdakr 0:194ff03a2e6a 636 void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim)
shivanandgowdakr 0:194ff03a2e6a 637 {
shivanandgowdakr 0:194ff03a2e6a 638 int mins,secs;
shivanandgowdakr 0:194ff03a2e6a 639 if( greentime[2]==':') {
shivanandgowdakr 0:194ff03a2e6a 640 mins=(( greentime[0]-0x30)*10)+(greentime[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 641 secs=((greentime[3]-0x30)*10)+(greentime[4]-0x30);
shivanandgowdakr 0:194ff03a2e6a 642 }
shivanandgowdakr 0:194ff03a2e6a 643 *grntim=mins*60+secs;
shivanandgowdakr 0:194ff03a2e6a 644 if( yellowtime[2]==':') {
shivanandgowdakr 0:194ff03a2e6a 645 mins=(( yellowtime[0]-0x30)*10)+(yellowtime[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 646 secs=((yellowtime[3]-0x30)*10)+(yellowtime[4]-0x30);
shivanandgowdakr 0:194ff03a2e6a 647 }
shivanandgowdakr 0:194ff03a2e6a 648 *yeltim=mins*60+secs;
shivanandgowdakr 0:194ff03a2e6a 649 if( redtime[2]==':') {
shivanandgowdakr 0:194ff03a2e6a 650 mins=(( redtime[0]-0x30)*10)+(redtime[1]-0x30);
shivanandgowdakr 0:194ff03a2e6a 651 secs=((redtime[3]-0x30)*10)+(redtime[4]-0x30);
shivanandgowdakr 0:194ff03a2e6a 652 }
shivanandgowdakr 0:194ff03a2e6a 653 *redtim=mins*60+secs;
shivanandgowdakr 0:194ff03a2e6a 654 }
shivanandgowdakr 0:194ff03a2e6a 655
shivanandgowdakr 0:194ff03a2e6a 656 void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime)
shivanandgowdakr 0:194ff03a2e6a 657 {
shivanandgowdakr 0:194ff03a2e6a 658 bool flag=false;
shivanandgowdakr 0:194ff03a2e6a 659 flag=WriteCorresspondingTimes(Mode, GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 660 {
shivanandgowdakr 0:194ff03a2e6a 661 if(flag==true) {
shivanandgowdakr 0:194ff03a2e6a 662 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 663 Display_LCD(0,0," Mode Save Success");
shivanandgowdakr 0:194ff03a2e6a 664 wait(1);
shivanandgowdakr 0:194ff03a2e6a 665 } else {
shivanandgowdakr 0:194ff03a2e6a 666 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 667 Display_LCD(0,0," Mode Save Failure");
shivanandgowdakr 0:194ff03a2e6a 668 wait(1);
shivanandgowdakr 0:194ff03a2e6a 669 }
shivanandgowdakr 0:194ff03a2e6a 670 }
shivanandgowdakr 0:194ff03a2e6a 671 }
shivanandgowdakr 0:194ff03a2e6a 672
shivanandgowdakr 0:194ff03a2e6a 673 void CalculateTimeElapsed(float TimeElapsed, char *TimeStr)
shivanandgowdakr 0:194ff03a2e6a 674 {
shivanandgowdakr 0:194ff03a2e6a 675 memset(TimeStr,'\0',sizeof TimeStr);
shivanandgowdakr 0:194ff03a2e6a 676 int mins=(int)TimeElapsed/60;
shivanandgowdakr 0:194ff03a2e6a 677 int secs=(int)TimeElapsed%60;
shivanandgowdakr 0:194ff03a2e6a 678 sprintf(TimeStr,"%2d:%02d",mins,secs);
shivanandgowdakr 0:194ff03a2e6a 679 }
shivanandgowdakr 0:194ff03a2e6a 680
shivanandgowdakr 0:194ff03a2e6a 681
shivanandgowdakr 0:194ff03a2e6a 682 bool PasswordAcceptance()
shivanandgowdakr 0:194ff03a2e6a 683 {
shivanandgowdakr 0:194ff03a2e6a 684 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 685 Display_LCD(0,0,"Enter Password ");
shivanandgowdakr 0:194ff03a2e6a 686 char PasswordStr[5]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 687 char temp='\0';
shivanandgowdakr 0:194ff03a2e6a 688 temp=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 689 PasswordStr[0]=temp;
shivanandgowdakr 0:194ff03a2e6a 690 Display_LCD(0,1,PasswordStr);
shivanandgowdakr 0:194ff03a2e6a 691 temp=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 692 PasswordStr[1]=temp;
shivanandgowdakr 0:194ff03a2e6a 693 Display_LCD(0,1,PasswordStr);
shivanandgowdakr 0:194ff03a2e6a 694 temp=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 695 PasswordStr[2]=temp;
shivanandgowdakr 0:194ff03a2e6a 696 Display_LCD(0,1,PasswordStr);
shivanandgowdakr 0:194ff03a2e6a 697 temp=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 698 PasswordStr[3]=temp;
shivanandgowdakr 0:194ff03a2e6a 699 Display_LCD(0,1,PasswordStr);
shivanandgowdakr 0:194ff03a2e6a 700 printf("Password Str %s\r\n",PasswordStr);
shivanandgowdakr 0:194ff03a2e6a 701
shivanandgowdakr 0:194ff03a2e6a 702 if(PasswordStr[0]=='1' && PasswordStr[1] =='1' && PasswordStr[2]=='1' && PasswordStr[3]=='1')
shivanandgowdakr 0:194ff03a2e6a 703 {
shivanandgowdakr 0:194ff03a2e6a 704 Display_LCD(0,0,"Accepted ");
shivanandgowdakr 0:194ff03a2e6a 705 printf("Accepted\r\n");
shivanandgowdakr 0:194ff03a2e6a 706 return true;
shivanandgowdakr 0:194ff03a2e6a 707 }
shivanandgowdakr 0:194ff03a2e6a 708 return false;
shivanandgowdakr 0:194ff03a2e6a 709 }
shivanandgowdakr 0:194ff03a2e6a 710
shivanandgowdakr 0:194ff03a2e6a 711
shivanandgowdakr 0:194ff03a2e6a 712 int ModeSelectTochange()
shivanandgowdakr 0:194ff03a2e6a 713 {
shivanandgowdakr 0:194ff03a2e6a 714 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 715 Display_LCD(0,0,"Select Mode 1-6 ");
shivanandgowdakr 0:194ff03a2e6a 716 char str[2]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 717 char temp='\0';
shivanandgowdakr 0:194ff03a2e6a 718 temp=keypad.waitForKey();
shivanandgowdakr 0:194ff03a2e6a 719 if(temp>=0x31 && temp<=0x36)
shivanandgowdakr 0:194ff03a2e6a 720 {
shivanandgowdakr 0:194ff03a2e6a 721 Display_LCD(0,1,"Mode Is: ");
shivanandgowdakr 0:194ff03a2e6a 722 str[0]=temp;
shivanandgowdakr 0:194ff03a2e6a 723 Display_LCD(9,1,str);
shivanandgowdakr 0:194ff03a2e6a 724 wait(1);
shivanandgowdakr 0:194ff03a2e6a 725 return (temp-0x30);
shivanandgowdakr 0:194ff03a2e6a 726 }
shivanandgowdakr 0:194ff03a2e6a 727 Display_LCD(0,0,"Invalid Mode");
shivanandgowdakr 0:194ff03a2e6a 728 return -1;
shivanandgowdakr 0:194ff03a2e6a 729
shivanandgowdakr 0:194ff03a2e6a 730 }
shivanandgowdakr 0:194ff03a2e6a 731
shivanandgowdakr 0:194ff03a2e6a 732
shivanandgowdakr 0:194ff03a2e6a 733
shivanandgowdakr 0:194ff03a2e6a 734
shivanandgowdakr 0:194ff03a2e6a 735
shivanandgowdakr 0:194ff03a2e6a 736
shivanandgowdakr 0:194ff03a2e6a 737 void fn(char rkey)
shivanandgowdakr 0:194ff03a2e6a 738 {
shivanandgowdakr 0:194ff03a2e6a 739 char GreenTime[10]={'\0'},YellowTime[10]={'\0'},RedTime[10]={'\0'};
shivanandgowdakr 0:194ff03a2e6a 740 bool Staus=false;
shivanandgowdakr 0:194ff03a2e6a 741 switch(rkey)
shivanandgowdakr 0:194ff03a2e6a 742
shivanandgowdakr 0:194ff03a2e6a 743 {
shivanandgowdakr 0:194ff03a2e6a 744
shivanandgowdakr 0:194ff03a2e6a 745 case '1':
shivanandgowdakr 0:194ff03a2e6a 746
shivanandgowdakr 0:194ff03a2e6a 747 {
shivanandgowdakr 0:194ff03a2e6a 748 Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 749 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 750 {
shivanandgowdakr 0:194ff03a2e6a 751
shivanandgowdakr 0:194ff03a2e6a 752 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 753 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 754 // SaveTimes(1,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 755 Display_LCD(0,0,"Done Saving ");
shivanandgowdakr 0:194ff03a2e6a 756 Display_LCD(0,1,"Mode Saved");
shivanandgowdakr 0:194ff03a2e6a 757 wait(1);
shivanandgowdakr 0:194ff03a2e6a 758 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 759 }
shivanandgowdakr 0:194ff03a2e6a 760 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 761 }
shivanandgowdakr 0:194ff03a2e6a 762 break;
shivanandgowdakr 0:194ff03a2e6a 763 case '2':
shivanandgowdakr 0:194ff03a2e6a 764 {
shivanandgowdakr 0:194ff03a2e6a 765 Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 766 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 767 {
shivanandgowdakr 0:194ff03a2e6a 768
shivanandgowdakr 0:194ff03a2e6a 769 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 770 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 771 // SaveTimes(2,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 772 Display_LCD(0,0,"Done Saving ");
shivanandgowdakr 0:194ff03a2e6a 773 Display_LCD(0,1,"Mode Saved");
shivanandgowdakr 0:194ff03a2e6a 774 wait(1);
shivanandgowdakr 0:194ff03a2e6a 775 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 776 }
shivanandgowdakr 0:194ff03a2e6a 777 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 778 }
shivanandgowdakr 0:194ff03a2e6a 779 break;
shivanandgowdakr 0:194ff03a2e6a 780 case '3':
shivanandgowdakr 0:194ff03a2e6a 781 {
shivanandgowdakr 0:194ff03a2e6a 782 Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 783 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 784 {
shivanandgowdakr 0:194ff03a2e6a 785
shivanandgowdakr 0:194ff03a2e6a 786 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 787 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 788 // SaveTimes(3,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 789 Display_LCD(0,0,"Done Saving ");
shivanandgowdakr 0:194ff03a2e6a 790 Display_LCD(0,1,"Mode Saved");
shivanandgowdakr 0:194ff03a2e6a 791 wait(1);
shivanandgowdakr 0:194ff03a2e6a 792 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 793 }
shivanandgowdakr 0:194ff03a2e6a 794 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 795 }
shivanandgowdakr 0:194ff03a2e6a 796
shivanandgowdakr 0:194ff03a2e6a 797 break;
shivanandgowdakr 0:194ff03a2e6a 798 case '4':
shivanandgowdakr 0:194ff03a2e6a 799 {
shivanandgowdakr 0:194ff03a2e6a 800 Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 801 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 802 {
shivanandgowdakr 0:194ff03a2e6a 803
shivanandgowdakr 0:194ff03a2e6a 804 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 805 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 806 // SaveTimes(4,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 807 Display_LCD(0,0,"Done Saving ");
shivanandgowdakr 0:194ff03a2e6a 808 Display_LCD(0,1,"Mode Saved");
shivanandgowdakr 0:194ff03a2e6a 809 wait(1);
shivanandgowdakr 0:194ff03a2e6a 810 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 811 }
shivanandgowdakr 0:194ff03a2e6a 812 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 813 }
shivanandgowdakr 0:194ff03a2e6a 814
shivanandgowdakr 0:194ff03a2e6a 815 break;
shivanandgowdakr 0:194ff03a2e6a 816 case '5':
shivanandgowdakr 0:194ff03a2e6a 817 {
shivanandgowdakr 0:194ff03a2e6a 818 Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 819 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 820 {
shivanandgowdakr 0:194ff03a2e6a 821
shivanandgowdakr 0:194ff03a2e6a 822 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 823 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 824 // SaveTimes(5,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 825 Display_LCD(0,0,"Done Saving ");
shivanandgowdakr 0:194ff03a2e6a 826 Display_LCD(0,1,"Mode Saved");
shivanandgowdakr 0:194ff03a2e6a 827 wait(1);
shivanandgowdakr 0:194ff03a2e6a 828 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 829 }
shivanandgowdakr 0:194ff03a2e6a 830 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 831 }
shivanandgowdakr 0:194ff03a2e6a 832
shivanandgowdakr 0:194ff03a2e6a 833 break;
shivanandgowdakr 0:194ff03a2e6a 834
shivanandgowdakr 0:194ff03a2e6a 835 case '6':
shivanandgowdakr 0:194ff03a2e6a 836 {
shivanandgowdakr 0:194ff03a2e6a 837 Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime);
shivanandgowdakr 0:194ff03a2e6a 838 if(Staus==true)
shivanandgowdakr 0:194ff03a2e6a 839 {
shivanandgowdakr 0:194ff03a2e6a 840
shivanandgowdakr 0:194ff03a2e6a 841 float GTIME=0,YTIME=0,RTIME=0;
shivanandgowdakr 0:194ff03a2e6a 842 ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME);
shivanandgowdakr 0:194ff03a2e6a 843 // SaveTimes(6,GTIME,YTIME,RTIME);
shivanandgowdakr 0:194ff03a2e6a 844 Display_LCD(0,0,"Done Saving ");
shivanandgowdakr 0:194ff03a2e6a 845 Display_LCD(0,1,"Mode Saved");
shivanandgowdakr 0:194ff03a2e6a 846 wait(1);
shivanandgowdakr 0:194ff03a2e6a 847 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 848 }
shivanandgowdakr 0:194ff03a2e6a 849 Staus=false;
shivanandgowdakr 0:194ff03a2e6a 850 }
shivanandgowdakr 0:194ff03a2e6a 851
shivanandgowdakr 0:194ff03a2e6a 852 break;
shivanandgowdakr 0:194ff03a2e6a 853 default:
shivanandgowdakr 0:194ff03a2e6a 854 Display_LCD(0,0,"No Mode saved");
shivanandgowdakr 0:194ff03a2e6a 855 Display_LCD(0,1,"Retns Prev Mode");
shivanandgowdakr 0:194ff03a2e6a 856 wait(1);
shivanandgowdakr 0:194ff03a2e6a 857 Clear_LCD();
shivanandgowdakr 0:194ff03a2e6a 858 printf("No Mode\r\n");
shivanandgowdakr 0:194ff03a2e6a 859
shivanandgowdakr 0:194ff03a2e6a 860 }
shivanandgowdakr 0:194ff03a2e6a 861
shivanandgowdakr 0:194ff03a2e6a 862 }