SIMPLE PROJECT THAT COMMUNICATE WITH SLAVE , TRY TO GET DATA, ANALYZE IT AND PROVIDE OUTPUT. TWO UART INTERFACE, SEMAPHORE, THREAD COMMUNICATION, LCD INTERFACING,PRIORITY BASED THREAD SWITCHING,HEX TO FLOAT CONVERSION

Dependencies:   TextLCD

Files at this revision

API Documentation at this revision

Comitter:
radhey04ec
Date:
Sun Aug 09 04:33:50 2020 +0000
Parent:
0:7945527e6a18
Child:
2:fab01e10358e
Commit message:
RED LED TEST INCLUDE SUCCESSFULLY; REF VOLTAGE 3.3 VOLT NOTE THIS

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Sun Aug 09 03:06:50 2020 +0000
+++ b/main.cpp	Sun Aug 09 04:33:50 2020 +0000
@@ -168,6 +168,14 @@
 
 bool NEXT = 0U;
 bool ERROR_FLAG = 0U;
+
+//*************************************LDR AREA LIGHT DETECTION*****************************
+//NOTE LDR SUPPLY BY 3.3 VOLT -- PLEASE NOTE THIS 
+AnalogIn LDR(PB_0);   //PB_0 is LDR sensor input 
+float LDR_VALUE = 0;  // TO STORE LDR DATA
+
+
+
 int main()
 {
 
@@ -184,8 +192,8 @@
 pc.printf("\n PROGRAM CREATED BY : R_AND_D DEPT of KEPL \n");
 pc.printf("\n Program Version 1.0 \n");
 pc.printf("\n Any changes of the program lead toward Board OS Crash or bugs");
-pc.printf("\n Permission require before any Hardware / software changes");
-pc.printf("\n TRY TO ACCESS main.C CODE......INITIALIZATIO OF RTOS START.....");
+pc.printf("\n Permission require before any Hardware / software changes \n");
+pc.printf("\n RTOS TRYING TO ACCESS THREAD CODE......INITIALIZATIO OF RTOS START.....");
 pc.printf("\n Do not press any Button");
 
 
@@ -204,8 +212,9 @@
 T1.start(CURRENT_MEASUREMENT);
 T2.start(LCD_REFRESH);
 
-pc.printf("\n All Thread create succesffully");
+pc.printf("\n All Thread create succesffully\n");
 wait_ms(500);
+pc.printf("\n NOW PLUG THE UNIT AND PRESS THE BUTTON \n");
 while(true)
 {
     BLUE_LED = 0;
@@ -349,9 +358,26 @@
         A.release();
         wait(1);
         response(); //Read Response from Slave
+        pc.printf("\n RED LED COMMAND RELEASE ");
         lcd.locate(0,1);
+        {
+            float LDR_AVG =0;
+            float S = 0;
+            int8_t z;
+            
+        for(z = 0; z < 10; z++)
+        {
+         
+         LDR_VALUE = LDR.read();
+         wait_ms(20);
+         S = S + LDR_VALUE;
+            
+        }
+        LDR_AVG = S /10;
+        LDR_VALUE = LDR_AVG;
+        }
         lcd.printf("                   ");
-        lcd.printf("RED LED ON ***");
+        lcd.printf("RED LED ON CMD");
         BUFFER_CLEAR();
         A.release();
         wait(1);
@@ -364,48 +390,37 @@
         response();
         BUFFER_CLEAR();
         pc.printf("RED LED TEST FINISH");
+        
+        //result time 
+        if(LDR_VALUE > 0.650)
+        {
         lcd.locate(0,0);
         lcd.printf("                   ");
         lcd.locate(0,0);
         lcd.printf("RED LED TEST OK");
         NEXT = 1;
+        pc.printf("\n RED LED DETECT SUCCESSFULLY");
+                
+        //CLEAR LCD CONTENT
         lcd.locate(0,1);
         lcd.printf("                   ");
         lcd.locate(0,2);
         lcd.printf("                   ");
         lcd.locate(0,0);
         lcd.printf("                   ");
-    }
-    if(NEXT == 1)// ********************************* CURRENT TEST
-    {
-        lcd.locate(0,0);
-        BUFFER_CLEAR();
-        NEXT = 0;
-        pc.printf("\n CURRENT TEST START");
-        A.release();
-        wait(1);
-        CURRENT();
-        lcd.locate(0,1);
-        lcd.printf("                   ");
-        lcd.locate(0,2);
-        lcd.printf("                   ");
-        lcd.locate(0,0);
-        lcd.printf("                   ");
-        lcd.locate(0,1);
-        lcd.printf("CURRENT = %f",current);
-        if(current > 6.5)
-        {
-            error(2);
-            NEXT = 0;
-            ERROR_FLAG = 1;
+        LDR_VALUE = 0;
         }
         else
         {
+            pc.printf("\n PROBLEM in LED DETECTION");
+            NEXT = 0;
+            ERROR_FLAG = 1;
+            error(5);
+
             
-        NEXT = 1;
-        ERROR_FLAG = 0;
         }
-    
+        
+
     }
     if(NEXT == 1)//**********************************CALIBRATION ON
     {
@@ -456,6 +471,38 @@
 
         
     }
+    if(NEXT == 1)// ********************************* CURRENT TEST
+    {
+        lcd.locate(0,0);
+        BUFFER_CLEAR();
+        NEXT = 0;
+        pc.printf("\n CURRENT TEST START");
+        A.release();
+        wait(1);
+        CURRENT();
+        lcd.locate(0,1);
+        lcd.printf("                   ");
+        lcd.locate(0,2);
+        lcd.printf("                   ");
+        lcd.locate(0,0);
+        lcd.printf("                   ");
+        lcd.locate(0,1);
+        lcd.printf("CURRENT = %f",current);
+        if(current > 6.5)
+        {
+            error(2);
+            NEXT = 0;
+            ERROR_FLAG = 1;
+        }
+        else
+        {
+            
+        NEXT = 1;
+        ERROR_FLAG = 0;
+        }
+    
+    }
+
     //END OF TEST -- NO NEED TO CHECK NEXT FLAG
     UT.putc('Q');
     wait(1);
@@ -548,6 +595,20 @@
  pc.printf("\n TRY TO WASH BOARD AGAIN and RECHECK");
  wait(3);
 }
+if(error_number == 5)
+{
+    pc.printf("\n ERROR NUMBER = 0X5");
+    pc.printf("\n RED LED DETECTION FAIL");
+    lcd.printf("LED TEST FAIL");
+    A.release();
+    wait(1);
+    pc.printf("\n POSSIBLE SOLUTION");
+    pc.printf("\n 1) CHECK LED MANUALLY - IF IT IS IN ON STATE PLEASE ADJUST SENSOR POSITION ");
+    pc.printf("\n Contact to R&D DEPT. for Hardare Amendement");
+    pc.printf("\n 2) If LED is not working state - check polarity");
+    pc.printf("\n contact to HOD");
+    
+}
     
 }