Embedded software Assessment 2

Dependencies:   MCP23017 SDFileSystem USBDevice WattBob_TextLCD mbed

Revision:
14:17be0f2d153f
Parent:
13:6094b94b3b7c
Child:
15:d33c51364fac
diff -r 6094b94b3b7c -r 17be0f2d153f Function.h
--- a/Function.h	Fri Feb 21 12:32:00 2014 +0000
+++ b/Function.h	Wed Feb 26 11:49:12 2014 +0000
@@ -22,7 +22,7 @@
 bool Swch1;
 bool Swch2;
 bool Ena_job6=0;
-bool FreqTimeOutE=1;
+bool FreqTimeOutHpn;
 uint8_t Error_Code;
 uint16_t Freq;
 char Temp[4];
@@ -82,35 +82,49 @@
 
 void FreqMsur(){
     FreqTimeOut.start();
-    while(!FrequencyIn){
-          if (FreqTimeOut.read_ms() > 50)
-               break;
+    if(!FrequencyIn){ 
+        while(!FrequencyIn){
+            if (FreqTimeOut.read_ms() > 3)
+                break;
+        }
     }
-    while(FrequencyIn){
-          if (FreqTimeOut.read_ms() > 50)
-               break;
+    else{
+        while(FrequencyIn){
+            if (FreqTimeOut.read_ms() > 3)
+                break;
+            }
+        }
+    FreqMsurT.start();
+    if (FreqTimeOut.read_ms() > 3){
+           FreqTimeOutHpn=1;
     }
-    if (FreqTimeOut.read_ms() > 50)
-        FreqTimeOutE=0;
-        
-    if(FreqTimeOutE){
-        FreqMsurT.start();
-        while(!FrequencyIn){
+    else{
+            FreqTimeOutHpn=0;
+    }
+    FreqTimeOut.stop(); 
+    FreqTimeOut.reset();
+    if(!FreqTimeOutHpn){
+        if(!FrequencyIn){
+            while(!FrequencyIn){
+            }
+            while(FrequencyIn){
+            }
         }
-        while(FrequencyIn){
+        else{
+            while(FrequencyIn){
+            }
+            while(!FrequencyIn){
+            }
         }    
         FreqMsurT.stop();
         float Period=FreqMsurT.read_us();
-        Freq=1/Period*1000000.0;  //Adding 0.5 to round the frequency to nearst int
+        Freq=1/Period*1000000.0+0.5;  //Adding 0.5 to round the frequency to nearst int
     }
     else{
         Freq=0xffff; 
     }                
+    FreqTimeOut.stop();
     FreqMsurT.reset();
-    FreqTimeOut.stop();
-    FreqTimeOut.reset();
-    FreqTimeOutE=1;
-
 }
 
 //Read TWO digital inputs every 400mS (switch_1 and switch_2) 
@@ -145,7 +159,7 @@
 **************************************************************/
 void Display(){  
     Write_LCD("    ",0,2,0);  
-    if( Freq<1200 && Freq>400){
+    if( Freq<1010 && Freq>490){
         sprintf(Temp, "%d", Freq);
         Write_LCD(Temp,0,2,0);
     }
@@ -209,7 +223,7 @@
 ***************************************************************/
 void LogFile(){
     char* Frq; 
-    fp = fopen("/sd/LogDir/sdtest.txt", "a");  
+    fp = fopen("/sd/LogDir/LogHistory.txt", "a");  
     if( Freq<1200 && Freq>400){
         sprintf(Temp, "%d", Freq); 
         Frq = Temp;