Project
Dependencies: Hotboards_keypad TextLCD eeprom
Diff: main.cpp
- Revision:
- 0:194ff03a2e6a
- Child:
- 1:1894419d5def
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Oct 23 08:12:53 2018 +0000
@@ -0,0 +1,862 @@
+
+
+#include "mbed.h"
+#include "LCDDisplay.h"
+#include "i2ceeprom.h"
+#include "Hotboards_keypad.h"
+#include "Hotboards_keypad.h"
+
+// Defines the keys array with it's respective number of rows & cols,
+// and with the value of each key
+char keys[ 4 ][ 4 ] =
+{
+ { '1' , '2' , '3' , 'A' },
+ { '4' , '5' , '6' , 'B' },
+ { '7' , '8' , '9' , 'C' },
+ { '*' , '0' , '#' , 'D' }
+};
+
+// Defines the pins connected to the rows
+DigitalInOut rowPins[ 4 ] = {D4,D5,D6,D7 };
+// Defines the pins connected to the cols
+DigitalInOut colPins[ 4 ] = { D8,D9,D10,D11};
+ //connect to the column pinouts of the keypad
+
+Keypad keypad( makeKeymap( keys ), rowPins, colPins,4,4);
+
+DigitalIn Mode1(PC_8);
+DigitalIn Mode2(PC_6);
+DigitalIn Mode3(PC_5);
+//DigitalIn Mode4(PC_5);
+//DigitalIn Mode5(PC_8);
+//DigitalIn Mode6(PC_6);
+
+bool PasswordStatus=false;
+int mode=0;
+DigitalIn Start(PA_12);
+DigitalIn Stop(PA_11);
+DigitalIn Reset(PB_12);
+
+
+DigitalOut GreenLight(PB_1);
+DigitalOut YellowLight(PB_15);
+DigitalOut RedLight(PB_14);
+DigitalOut SpareLight(PB_13);
+DigitalOut Buzzer(PC_13);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+
+
+
+uint32_t Current_Mode=0;
+
+float G_time=0;
+float Y_time=0;
+float R_time=0;
+
+uint8_t StartButtonPressed=0;
+uint8_t StopButtonPressed=0;
+uint8_t ReStartButtonPressed=0;
+Timer timer;
+Timer timerred;
+//Thread EveryOneSec;
+
+void keypadEvent(KeypadEvent key);
+bool ReadEachLightTime(int mode,char *mmss);
+bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime);
+void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim);
+void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime);
+void CalculateTimeElapsed(float TimeElapsed, char *TimeStr);
+bool PasswordAcceptance();
+int ModeSelectTochange();
+void fn(char rkey);
+int main()
+{
+ bool start=false;
+ Mode1.mode(PullUp);
+ Mode2.mode(PullUp);
+ Mode3.mode(PullUp);
+// Mode4.mode(PullUp);
+// Mode5.mode(PullUp);
+// Mode6.mode(PullUp);
+ bool lcdflag=true;
+ Start.mode(PullUp);
+ Stop.mode(PullUp);
+ Reset.mode(PullUp);
+
+ float timeElapsed=0;
+ char buff[6]= {'\0'};
+ char Buffer[17]= {'\0'};
+ Clear_LCD();
+ Display_LCD(0,0," Initialising ");
+ SpareLight=1;
+ GreenLight=1;
+ YellowLight=1;
+ RedLight=1;
+ wait(1);
+ Clear_LCD();
+ //Current_Mode=1;
+ Display_LCD(0,0,"Select Mode Or");
+ Display_LCD(0,1,"Press Start ");
+ G_time=20;
+ Y_time=5;
+ R_time=10;
+ char key;
+ while(1) {
+
+
+ key=keypad.getKey();
+ if(key)
+ {
+ if(key=='*')
+ {
+ PasswordStatus=PasswordAcceptance();
+ }
+ if(PasswordStatus==true)
+ {
+ PasswordStatus=false;
+ mode= ModeSelectTochange();
+ if(mode>=1 && mode <=6)
+ {
+ fn((char)(mode+0x30));
+ mode=0;
+ }
+ else
+ {
+ Display_LCD(0,0," Invalid Mode ");
+ Display_LCD(0,1,"Mode b/w 1-6 ");
+ wait(2);
+
+ Clear_LCD();
+ Display_LCD(0,0,"Select Mode Or");
+ Display_LCD(0,1,"Press Start ");
+
+ }
+ }
+
+ else if(key=='A')
+ {
+ printf("Started \r\n");
+ StartButtonPressed=1;
+ StopButtonPressed=0;
+ ReStartButtonPressed=0;
+ printf("Started ************ %d \r\n",StartButtonPressed);
+ printf("Started ############## %d \r\n",StopButtonPressed);
+ printf("Started 88888888888888%d \r\n",ReStartButtonPressed);
+ timer.start();
+
+ }
+
+ else if(key=='B')
+ {
+ StartButtonPressed=0;
+ StopButtonPressed=1;
+ ReStartButtonPressed=0;
+
+ printf("Stopped \r\n");
+ wait(0.2);
+ }
+ else if(key=='C')
+ {
+ StartButtonPressed=0;
+ StopButtonPressed=0;
+ ReStartButtonPressed=1;
+ timer.stop();
+ printf("Reset \r\n");
+ wait(0.2);
+ }
+
+ else if(key=='D')
+ {
+ Clear_LCD();
+ Display_LCD(0,0,"Choose Mode");
+ wait(0.5);
+ char tempkey=keypad.waitForKey();
+ if(tempkey>=0x31 && tempkey<=0x36)
+ {
+ char Buff[20]={'\0'};
+ sprintf(Buff,"Current Mode %c",tempkey);
+ Display_LCD(0,1,Buff);
+ Current_Mode=(int)(tempkey-0x30);
+ wait(1);
+ Clear_LCD();
+
+ }
+ else
+ {
+ Display_LCD(0,0,"Invld Mod Entrd");
+ wait(1);
+ Clear_LCD();
+
+ }
+ }
+ else
+ {}
+
+ }
+
+
+// if(Mode1==0)
+ if(Current_Mode==1)
+ {
+ printf("Am here in Mode 1\r\n");
+ G_time=20;
+ Y_time=5;
+ R_time=10;
+
+// ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+ printf("Current MOde 1 \r\n");
+// Display_LCD(0,1,"Mode: 1");
+ Y_time=Y_time+G_time;
+ R_time=R_time+Y_time;
+ wait(0.2);
+ }
+
+// if(Mode2==0)
+ if(Current_Mode==2)
+ {
+
+ G_time=2;
+ Y_time=5;
+ R_time=1;
+ Current_Mode=2;
+// ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+ printf("Current MOde 2 \r\n");
+// Display_LCD(0,1,"Mode: 2");
+ Y_time=Y_time+G_time;
+ R_time=R_time+Y_time;
+ wait(0.1);
+ }
+
+// if(Mode3==0)
+ if(Current_Mode==3)
+ {
+
+ G_time=12;
+ Y_time=5;
+ R_time=10;
+ Current_Mode=3;
+// ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+ printf("Current MOde 3 \r\n");
+// Display_LCD(0,1,"Mode: 3");
+ Y_time=Y_time+G_time;
+ R_time=R_time+Y_time;
+ wait(0.1);
+ }
+
+
+ // if(Mode4==0)
+ if(Current_Mode==4)
+ {
+
+ G_time=20;
+ Y_time=5;
+ R_time=10;
+ Current_Mode=4;
+// ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+ printf("Current MOde 1 \r\n");
+ Display_LCD(0,1,"Mode: 4");
+ Y_time=Y_time+G_time;
+ R_time=R_time+Y_time;
+ wait(0.2);
+ }
+//
+ if(Current_Mode==5)
+ {
+
+ G_time=2;
+ Y_time=5;
+ R_time=1;
+ Current_Mode=5;
+ printf("Current MOde 2 \r\n");
+// ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+ Display_LCD(0,1,"Mode: 5");
+ Y_time=Y_time+G_time;
+ R_time=R_time+Y_time;
+ wait(0.2);
+ }
+//
+// if(Mode6==0)
+if(Current_Mode==6)
+ {
+
+ G_time=12;
+ Y_time=5;
+ R_time=10;
+ Current_Mode=3;
+ printf("Current MOde 3 \r\n");
+// ReadCorresspondingTimes(Current_Mode,&G_time,&Y_time,&R_time);
+ Display_LCD(0,1,"Mode: 6");
+ Y_time=Y_time+G_time;
+ R_time=R_time+Y_time;
+ wait(0.2);
+ }
+
+
+ if(Start==0)
+ {
+ printf("Started \r\n");
+ StartButtonPressed=1;
+ StopButtonPressed=0;
+ ReStartButtonPressed=0;
+ printf("Started ************ %d \r\n",StartButtonPressed);
+ printf("Started ############## %d \r\n",StopButtonPressed);
+ printf("Started 88888888888888%d \r\n",ReStartButtonPressed);
+
+ timer.start();
+
+ }
+ if(Stop==0)
+ {
+ StartButtonPressed=0;
+ StopButtonPressed=1;
+ ReStartButtonPressed=0;
+
+ printf("Stopped \r\n");
+ wait(0.2);
+
+ }
+
+ if(Reset==0)
+ {
+ StartButtonPressed=0;
+ StopButtonPressed=0;
+ ReStartButtonPressed=1;
+ timer.stop();
+ printf("Reset \r\n");
+ wait(0.2);
+ }
+
+
+ if(StartButtonPressed==1 && StopButtonPressed==0 && ReStartButtonPressed==0 ) {
+ printf(" Read Time %f\r\n",timer.read()); //while
+ if(timer.read()<=G_time ) {
+
+ if(lcdflag==true)
+ {
+ Clear_LCD();
+ lcdflag=false;
+
+ }
+// timer.start();
+ printf(" Read Time %f\r\n",timer.read());
+ Display_LCD(0,0,"Green Light ");
+ GreenLight=0;
+ YellowLight=1;
+ RedLight=1;
+ wait(0.1);
+ } else if( timer.read()>G_time && timer.read()<=Y_time ) {
+ Display_LCD(0,0,"Yellow Light ");
+
+ GreenLight=1;
+ YellowLight=0;
+ RedLight=1;
+ wait(0.1);
+ printf(" Read Time %f\r\n",timer.read());
+ }
+
+ else if( timer.read()>Y_time && timer.read()<=R_time )
+ {
+ Display_LCD(0,0,"Red Light ");
+ GreenLight=1;
+ YellowLight=1;
+ RedLight=0;
+ timerred.start();
+ wait(0.1);
+
+ printf(" Read Time %f\r\n",timer.read());
+ }
+ //else if(timer.read()>R_time) {
+// Display_LCD(0,0,"Time Lmt Excded ");
+// GreenLight=1;
+// YellowLight=1;
+// RedLight=1;
+// wait(0.2);
+//
+//
+// }
+
+ }
+// timeElapsed=timer.read();
+// CalculateTimeElapsed(timeElapsed,buff);
+ if(StartButtonPressed==0 && StopButtonPressed==1 && ReStartButtonPressed==0 ) {
+ timeElapsed=timer.read();
+ timer.stop();
+
+ printf("Total Time = %f\r\n",timeElapsed);
+
+ CalculateTimeElapsed(timeElapsed,buff);
+
+ sprintf(Buffer,"Total Time %s",buff);
+
+ Display_LCD(0,0,Buffer);
+ memset(Buffer,'\0',17);
+ timeElapsed=timerred.read();
+ timerred.stop();
+ CalculateTimeElapsed(timeElapsed,buff);
+ memset(Buffer,'\0',17);
+ sprintf(Buffer,"Tim af Red %s",buff);
+ Display_LCD(0,1,Buffer);
+ memset(Buffer,'\0',17);
+
+ wait(0.1);
+
+ // /******************************************/
+// ReStartButtonPressed=1;
+// StartButtonPressed=0;
+// StopButtonPressed=0;
+// /******************************************/
+ }
+ if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==1 ) {
+
+
+ Display_LCD(0,0,"Done Resetting");
+ StartButtonPressed=0;
+ StopButtonPressed=0;
+ ReStartButtonPressed=0;
+ Clear_LCD();
+
+
+ }
+ if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==0 ) {
+ GreenLight=1;
+ YellowLight=1;
+ RedLight=1;
+ timer.reset();
+ timerred.reset();
+
+// printf(" Last Line\r\n");
+ Display_LCD(0,0,"Select Mode Or");
+ Display_LCD(0,1,"Press Start ");
+
+ lcdflag=true;
+ }
+
+ }
+}
+
+
+void ReadTimes()
+{
+ char rkey;
+ char Str[5]= {'\0'};
+ char Star[5]={'\0'};
+ char text[5]={'\0'};
+ char GreenTime[6]={'\0'};
+ char YellowTime[6]={'\0'};
+ char RedTime[6]={'\0'};
+ bool Staus=false;
+ rkey=keypad.waitForKey();
+
+ switch(rkey)
+ {
+
+ case '1':
+
+ {
+ Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+ SaveTimes(1,GTIME,YTIME,RTIME);
+ }
+ Staus=false;
+ }
+ break;
+ case '2':
+ {
+ Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+ SaveTimes(2,GTIME,YTIME,RTIME);
+ }
+ Staus=false;
+ }
+ break;
+ case '3':
+ {
+ Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+ SaveTimes(3,GTIME,YTIME,RTIME);
+ }
+ Staus=false;
+ }
+
+ break;
+ case '4':
+ {
+ Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+ SaveTimes(4,GTIME,YTIME,RTIME);
+ }
+ Staus=false;
+ }
+
+ break;
+ case '5':
+ {
+ Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+ SaveTimes(5,GTIME,YTIME,RTIME);
+ }
+ Staus=false;
+ }
+
+ break;
+
+ case '6':
+ {
+ Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+ SaveTimes(6,GTIME,YTIME,RTIME);
+ }
+ Staus=false;
+ }
+
+ break;
+ default:
+ {
+ printf("No Mode\r\n");
+ Clear_LCD();
+ Display_LCD(0,0," InValid Mode ");
+
+ }
+
+
+ }
+
+
+}
+
+bool ReadEachLightTime(int mode,char *mmss,char *lightTimeName)
+{
+ Clear_LCD();
+ char Buffer[17]= {'\0'};
+ char Buffer1[17]="Entr Time Mode:";
+ char Buffer2[17]="Tim MM:SS";
+
+ uint8_t index1=0;
+ char key='\0';
+ char str[6]= {'\0'};
+ Clear_LCD();
+ sprintf(Buffer,"%s%d",Buffer1,mode);
+ Display_LCD(0,0,Buffer);
+ memset(Buffer,'\0',16);
+ sprintf(Buffer,"%s %s",lightTimeName,Buffer2);
+ Display_LCD(0,1,Buffer);
+
+ wait(3);
+ Clear_LCD();
+ Display_LCD(0,0,"Press # Set ");
+ Display_LCD(0,1,"Prss * to Exit ");
+
+ key=keypad.waitForKey();
+ if(key=='#') {
+ Clear_LCD();
+ Display_LCD(0,0,"MM:SS ");
+
+ index1=0;
+ while(index1==0 ||(index1<=4 && key !='#' && key!='*')) {
+ key=keypad.waitForKey();
+ str[index1]=key;
+ if(index1==2) {
+ str[index1]=':';
+ index1++;
+ str[index1]=key;
+ }
+ index1++;
+ Display_LCD(0,0,"MM:SS ");
+ Display_LCD(0,1,"MM:SS ");
+ Display_LCD(0,1,str);
+ }
+ Clear_LCD();
+ Display_LCD(0,0,"Saving Mode ");
+ Display_LCD(0,1,str);
+ memcpy(mmss,str,5);
+ mmss[6]='\0';
+ wait(1);
+ Clear_LCD();
+
+ return true;
+ } else if(key=='*'){
+ Display_LCD(0,0,"Mode Not Set ");
+ Display_LCD(0,1,"Retains PrevMode");
+ return false;
+ }
+}
+
+
+bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime)
+{
+ bool Greenflag=false,Yellowflag=false,Redflag=false;
+ Greenflag=ReadEachLightTime(MODE,Greentime,"Green");
+
+ if(Greenflag==true) {
+
+ Yellowflag=ReadEachLightTime(MODE,Yellowtime,"Yellow");
+ if(Yellowflag==true) {
+
+ Redflag=ReadEachLightTime(MODE,Redtime,"Red");
+ if(Redflag==true) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+
+ } else
+ return false;
+}
+
+
+void ExtractTimesinSecs(char *greentime,char *yellowtime,char *redtime,float *grntim,float *yeltim,float *redtim)
+{
+ int mins,secs;
+ if( greentime[2]==':') {
+ mins=(( greentime[0]-0x30)*10)+(greentime[1]-0x30);
+ secs=((greentime[3]-0x30)*10)+(greentime[4]-0x30);
+ }
+ *grntim=mins*60+secs;
+ if( yellowtime[2]==':') {
+ mins=(( yellowtime[0]-0x30)*10)+(yellowtime[1]-0x30);
+ secs=((yellowtime[3]-0x30)*10)+(yellowtime[4]-0x30);
+ }
+ *yeltim=mins*60+secs;
+ if( redtime[2]==':') {
+ mins=(( redtime[0]-0x30)*10)+(redtime[1]-0x30);
+ secs=((redtime[3]-0x30)*10)+(redtime[4]-0x30);
+ }
+ *redtim=mins*60+secs;
+}
+
+void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime)
+{
+ bool flag=false;
+ flag=WriteCorresspondingTimes(Mode, GreenTime,YellowTime,RedTime);
+ {
+ if(flag==true) {
+ Clear_LCD();
+ Display_LCD(0,0," Mode Save Success");
+ wait(1);
+ } else {
+ Clear_LCD();
+ Display_LCD(0,0," Mode Save Failure");
+ wait(1);
+ }
+ }
+}
+
+void CalculateTimeElapsed(float TimeElapsed, char *TimeStr)
+{
+ memset(TimeStr,'\0',sizeof TimeStr);
+ int mins=(int)TimeElapsed/60;
+ int secs=(int)TimeElapsed%60;
+ sprintf(TimeStr,"%2d:%02d",mins,secs);
+}
+
+
+ bool PasswordAcceptance()
+ {
+ Clear_LCD();
+ Display_LCD(0,0,"Enter Password ");
+ char PasswordStr[5]={'\0'};
+ char temp='\0';
+ temp=keypad.waitForKey();
+ PasswordStr[0]=temp;
+ Display_LCD(0,1,PasswordStr);
+ temp=keypad.waitForKey();
+ PasswordStr[1]=temp;
+ Display_LCD(0,1,PasswordStr);
+ temp=keypad.waitForKey();
+ PasswordStr[2]=temp;
+ Display_LCD(0,1,PasswordStr);
+ temp=keypad.waitForKey();
+ PasswordStr[3]=temp;
+ Display_LCD(0,1,PasswordStr);
+ printf("Password Str %s\r\n",PasswordStr);
+
+ if(PasswordStr[0]=='1' && PasswordStr[1] =='1' && PasswordStr[2]=='1' && PasswordStr[3]=='1')
+ {
+ Display_LCD(0,0,"Accepted ");
+ printf("Accepted\r\n");
+ return true;
+ }
+ return false;
+ }
+
+
+ int ModeSelectTochange()
+ {
+ Clear_LCD();
+ Display_LCD(0,0,"Select Mode 1-6 ");
+ char str[2]={'\0'};
+ char temp='\0';
+ temp=keypad.waitForKey();
+ if(temp>=0x31 && temp<=0x36)
+ {
+ Display_LCD(0,1,"Mode Is: ");
+ str[0]=temp;
+ Display_LCD(9,1,str);
+ wait(1);
+ return (temp-0x30);
+ }
+ Display_LCD(0,0,"Invalid Mode");
+ return -1;
+
+ }
+
+
+
+
+
+
+ void fn(char rkey)
+ {
+ char GreenTime[10]={'\0'},YellowTime[10]={'\0'},RedTime[10]={'\0'};
+ bool Staus=false;
+ switch(rkey)
+
+ {
+
+ case '1':
+
+ {
+ Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+// SaveTimes(1,GTIME,YTIME,RTIME);
+ Display_LCD(0,0,"Done Saving ");
+ Display_LCD(0,1,"Mode Saved");
+ wait(1);
+ Clear_LCD();
+ }
+ Staus=false;
+ }
+ break;
+ case '2':
+ {
+ Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+// SaveTimes(2,GTIME,YTIME,RTIME);
+ Display_LCD(0,0,"Done Saving ");
+ Display_LCD(0,1,"Mode Saved");
+ wait(1);
+ Clear_LCD();
+ }
+ Staus=false;
+ }
+ break;
+ case '3':
+ {
+ Staus=ReadAllTimesofEachMode(3,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+// SaveTimes(3,GTIME,YTIME,RTIME);
+ Display_LCD(0,0,"Done Saving ");
+ Display_LCD(0,1,"Mode Saved");
+ wait(1);
+ Clear_LCD();
+ }
+ Staus=false;
+ }
+
+ break;
+ case '4':
+ {
+ Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+// SaveTimes(4,GTIME,YTIME,RTIME);
+ Display_LCD(0,0,"Done Saving ");
+ Display_LCD(0,1,"Mode Saved");
+ wait(1);
+ Clear_LCD();
+ }
+ Staus=false;
+ }
+
+ break;
+ case '5':
+ {
+ Staus=ReadAllTimesofEachMode(5,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+// SaveTimes(5,GTIME,YTIME,RTIME);
+ Display_LCD(0,0,"Done Saving ");
+ Display_LCD(0,1,"Mode Saved");
+ wait(1);
+ Clear_LCD();
+ }
+ Staus=false;
+ }
+
+ break;
+
+ case '6':
+ {
+ Staus=ReadAllTimesofEachMode(6,GreenTime,YellowTime,RedTime);
+ if(Staus==true)
+ {
+
+ float GTIME=0,YTIME=0,RTIME=0;
+ ExtractTimesinSecs(GreenTime,YellowTime,RedTime,>IME,&YTIME,&RTIME);
+// SaveTimes(6,GTIME,YTIME,RTIME);
+ Display_LCD(0,0,"Done Saving ");
+ Display_LCD(0,1,"Mode Saved");
+ wait(1);
+ Clear_LCD();
+ }
+ Staus=false;
+ }
+
+ break;
+ default:
+ Display_LCD(0,0,"No Mode saved");
+ Display_LCD(0,1,"Retns Prev Mode");
+ wait(1);
+ Clear_LCD();
+ printf("No Mode\r\n");
+
+ }
+
+ }
\ No newline at end of file