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
Diff: main.cpp
- Revision:
- 1:bdc3ebd4e52b
- Parent:
- 0:7945527e6a18
- Child:
- 2:fab01e10358e
--- 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"); + +} }