Project

Dependencies:   Hotboards_keypad TextLCD eeprom

Revision:
1:1894419d5def
Parent:
0:194ff03a2e6a
--- a/main.cpp	Tue Oct 23 08:12:53 2018 +0000
+++ b/main.cpp	Mon Sep 16 14:05:54 2019 +0000
@@ -1,4 +1,3 @@
-
 
 #include "mbed.h"
 #include "LCDDisplay.h"
@@ -8,8 +7,7 @@
 
 // Defines the keys array with it's respective number of rows & cols,
 // and with the value of each key
-char keys[ 4 ][ 4 ] =
-{
+char keys[ 4 ][ 4 ] = {
     { '1' , '2' , '3' , 'A' },
     { '4' , '5' , '6' , 'B' },
     { '7' , '8' , '9' , 'C' },
@@ -20,22 +18,14 @@
 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
+//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);
@@ -49,12 +39,13 @@
 
 
 
-uint32_t Current_Mode=0;
+uint32_t Current_Mode=1;
 
 float G_time=0;
 float Y_time=0;
 float R_time=0;
 
+
 uint8_t  StartButtonPressed=0;
 uint8_t  StopButtonPressed=0;
 uint8_t  ReStartButtonPressed=0;
@@ -63,28 +54,23 @@
 //Thread EveryOneSec;
 
 void keypadEvent(KeypadEvent key);
-bool ReadEachLightTime(int mode,char *mmss);
-bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime);
+bool ReadEachLightTime(uint32_t mode,char *mmss);
+bool ReadAllTimesofEachMode(uint32_t 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 SaveTimes(uint32_t Mode,float GreenTime,float YellowTime,float RedTime);
 void CalculateTimeElapsed(float TimeElapsed, char *TimeStr);
 bool PasswordAcceptance();
 int ModeSelectTochange();
+ void Get_Time_Elapsed_after_Start(float timeInSec, char * str);
 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);
-   
+    bool start=false;
+  
+    bool lcdflag=true;
+    
+    char Timestr[10]={'\0'};
+    char Buf[17]={'\0'};
     float timeElapsed=0;
     char buff[6]= {'\0'};
     char Buffer[17]= {'\0'};
@@ -97,258 +83,260 @@
     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;
+//    Last_Saved_Mode();
+    Display_LCD(0,0,"Select Mode Or");
+    Display_LCD(0,1,"Press Start ");
+    G_time=20;
+    Y_time=5;
+    R_time=10;
     char key;
+
+    
+    Current_Mode = readCurrentMode();
+    
+    //WriteCorresspondingTimes(1, 10,20,30);
+//    ReadCorresspondingTimes(1,&G_time,&Y_time,&R_time);
+
+    
+    printf("Current Mode is  %d \r\n", Current_Mode);
+    
     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
-         {}
-          
+        
+        printf("Key is :%c\r\n",key);
+        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 \r\n");
+                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);
+                    StoreCurrentMode(Current_Mode);
+                    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");
+        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(" G_time %f, Y Time %f R_time %f :",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);
+        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;
+        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);
+           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;
+        }
+
+
+        //  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);
+            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;
+        }
+//
+        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");
+//            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;
+        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);
+//            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(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;
-                 
+
+                if(lcdflag==true) {
+                    Clear_LCD();
+                    lcdflag=false;
+
                 }
+                
+                
 //                timer.start();
                 printf("  Read Time %f\r\n",timer.read());
-                Display_LCD(0,0,"Green Light    ");
+                Display_LCD(0,0,"   Green Light  ");
+                Get_Time_Elapsed_after_Start(timer.read(),Timestr);
+//                 Display_LCD(0,1,Timestr);
+                 sprintf(Buf,"      %s     ",Timestr);
+                 Display_LCD(0,1,Buf);
+                 memset(Buf,'\0',16);
                 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   ");
-                
+                Display_LCD(0,0,"  Yellow Light   ");
+                 Get_Time_Elapsed_after_Start(timer.read(),Timestr);
+                 sprintf(Buf,"      %s     ",Timestr);
+                 Display_LCD(0,1,Buf);
+                 memset(Buf,'\0',16);
                 GreenLight=1;
                 YellowLight=0;
                 RedLight=1;
@@ -356,24 +344,58 @@
                 printf("  Read Time %f\r\n",timer.read());
             }
 
-            else if( timer.read()>Y_time  && timer.read()<=R_time )
-            {
-                Display_LCD(0,0,"Red  Light    ");
+            else if( timer.read()>Y_time  && timer.read()<=R_time ) {
+                Display_LCD(0,0,"   Red  Light    ");
+                 Get_Time_Elapsed_after_Start(timer.read(),Timestr);
+//                 Display_LCD(0,1,Timestr);
+                sprintf(Buf,"      %s     ",Timestr);
+                 Display_LCD(0,1,Buf);
+                 memset(Buf,'\0',16);
                 GreenLight=1;
                 YellowLight=1;
                 RedLight=0;
                 timerred.start();
-                wait(0.1);
-                 
-                 printf("  Read Time %f\r\n",timer.read());
-            } 
+               
+
+                printf("  Read Time %f\r\n",timer.read());
+            }
+               else if( timer.read()>R_time )
+               {
+                    GreenLight=1;
+                    YellowLight=1;
+                    RedLight=1; 
+                    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);
+
+            StartButtonPressed=0;
+            StopButtonPressed=1;
+            ReStartButtonPressed=0;
+
+                   
+                }
+            
             //else if(timer.read()>R_time) {
 //                Display_LCD(0,0,"Time Lmt Excded ");
 //                GreenLight=1;
 //                YellowLight=1;
 //                RedLight=1;
 //                wait(0.2);
-//                
+//
 //
 //            }
 
@@ -383,53 +405,52 @@
         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);
+            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 you want to use Reset Button Comment these lines
+            * Presently it is with auto reset
+             ******************************************/
+               ReStartButtonPressed=1;
+                StartButtonPressed=0;
+            StopButtonPressed=0;
 //                /******************************************/
         }
         if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==1 ) {
 
-           
-            Display_LCD(0,0,"Done Resetting");
+//            Display_LCD(0,0,"Done Resetting");
             StartButtonPressed=0;
             StopButtonPressed=0;
             ReStartButtonPressed=0;
-            Clear_LCD();
-            
-          
+//            Clear_LCD();
+
         }
-       if(StartButtonPressed==0 && StopButtonPressed==0 && ReStartButtonPressed==0 ) {
+        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 ");
-           
+           // Display_LCD(0,0,"Select Mode Or");
+//            Display_LCD(0,1,"Press Start ");
+
             lcdflag=true;
         }
 
@@ -441,122 +462,108 @@
 {
     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'};
+    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();          
+    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,&GTIME,&YTIME,&RTIME);
+                SaveTimes(1,GTIME,YTIME,RTIME);
+                printf(" Times %f  %f  %f \r\n",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,&GTIME,&YTIME,&RTIME);
+                printf(" Times %f  %f  %f \r\n",GTIME,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,&GTIME,&YTIME,&RTIME);
+                SaveTimes(3,GTIME,YTIME,RTIME);
+            }
+            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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&YTIME,&RTIME);
-                                           SaveTimes(6,GTIME,YTIME,RTIME);
-                                        }
-                                        Staus=false;
-                                        }
-                
-                                        break;
-                                    default:
-                                    {
-                                        printf("No Mode\r\n");
-                                        Clear_LCD();
-                                        Display_LCD(0,0,"  InValid Mode ");
-                                        
-                                    }
-                                        
-                                        
-                            }
-                    
-          
+        break;
+        case '4': {
+            Staus=ReadAllTimesofEachMode(4,GreenTime,YellowTime,RedTime);
+            if(Staus==true) {
+
+                float GTIME=0,YTIME=0,RTIME=0;
+                ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&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,&GTIME,&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,&GTIME,&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)
+bool ReadEachLightTime(uint32_t 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'};
@@ -566,8 +573,8 @@
     memset(Buffer,'\0',16);
     sprintf(Buffer,"%s %s",lightTimeName,Buffer2);
     Display_LCD(0,1,Buffer);
-    
-   wait(3);
+
+    wait(3);
     Clear_LCD();
     Display_LCD(0,0,"Press # Set ");
     Display_LCD(0,1,"Prss * to Exit ");
@@ -576,7 +583,7 @@
     if(key=='#') {
         Clear_LCD();
         Display_LCD(0,0,"MM:SS ");
-       
+        Display_LCD(0,1,"MM:SS ");
         index1=0;
         while(index1==0 ||(index1<=4 && key !='#' && key!='*')) {
             key=keypad.waitForKey();
@@ -598,26 +605,28 @@
         mmss[6]='\0';
         wait(1);
         Clear_LCD();
-        
+
         return true;
-    } else if(key=='*'){
+    } else if(key=='*') {
         Display_LCD(0,0,"Mode Not Set    ");
         Display_LCD(0,1,"Retains PrevMode");
+        wait (2);
+        Clear_LCD();
         return false;
     }
 }
 
 
-bool ReadAllTimesofEachMode(int MODE,char *Greentime,char *Yellowtime,char *Redtime)
+bool ReadAllTimesofEachMode(uint32_t 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;
@@ -653,21 +662,24 @@
     *redtim=mins*60+secs;
 }
 
-void SaveTimes(int Mode,float GreenTime,float YellowTime,float RedTime)
+void SaveTimes(uint32_t 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");
+            Display_LCD(0,0,"    Mode Save  ");
+            Display_LCD(0,1,"     Success   ");
             wait(1);
         } else {
             Clear_LCD();
-            Display_LCD(0,0," Mode Save Failure");
+            Display_LCD(0,0,"    Mode Save  ");
+            Display_LCD(0,1,"     Failure   ");
+            
             wait(1);
         }
-    }
+    
 }
 
 void CalculateTimeElapsed(float TimeElapsed, char *TimeStr)
@@ -679,184 +691,199 @@
 }
 
 
-              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;  
+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,&GTIME,&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;
         }
-        
-        
-       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;
+        break;
+        case '2': {
+            Staus=ReadAllTimesofEachMode(2,GreenTime,YellowTime,RedTime);
+            if(Staus==true) {
+
+                float GTIME=0,YTIME=0,RTIME=0;
+                ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&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,&GTIME,&YTIME,&RTIME);
                 
-        }
-        
-        
-        
-        
-        
-        
-   void fn(char rkey)
-   {
-         char GreenTime[10]={'\0'},YellowTime[10]={'\0'},RedTime[10]={'\0'};
-         bool Staus=false;
-         switch(rkey)
-         
-                        {
-                                                  
-                                    case '1':
+                printf("GreenTime,YellowTime,RedTime,&GTIME,&YTIME,&RTIME %s   %s  %s  : %f  %f  %f \r\n ",GreenTime,YellowTime,RedTime,GTIME,YTIME,RTIME);
+                SaveTimes(3,GTIME,YTIME,RTIME);
                 
-                                      {
-                                        Staus=ReadAllTimesofEachMode(1,GreenTime,YellowTime,RedTime);
-                                        if(Staus==true)
-                                        {
-                                          
-                                           float GTIME=0,YTIME=0,RTIME=0;
-                                           ExtractTimesinSecs(GreenTime,YellowTime,RedTime,&GTIME,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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,&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,&GTIME,&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,&GTIME,&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,&GTIME,&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
+                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,&GTIME,&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");
+    }
+
+}
+
+
+
+
+   void Get_Time_Elapsed_after_Start(float timeInSec, char * str)
+   {
+     memset(str,'\0',6);
+     uint8_t  min=(int) timeInSec/60;
+     uint8_t  Secs=(int) timeInSec%60;
+     
+    if(min<10)
+    {
+     str[0]=0x30;
+     str[1]=min+0x30;    
+    }
+  else  if(min>=10)
+    {
+     str[0]=(min/10)+0x30;
+     str[1]=(min%10)+0x30;    
+    }
+    
+    str[2]=':';
+     if(Secs<10)
+    {
+     str[3]=0x30;
+     str[4]=Secs+0x30;    
+    }
+  else  if(Secs>=10)
+    {
+     str[3]=(Secs/10)+0x30;
+     str[4]=(Secs%10)+0x30;    
+    }
+    str[5]='\0';
+          
+ }
\ No newline at end of file