Embedded software Assessment 2

Dependencies:   MCP23017 SDFileSystem USBDevice WattBob_TextLCD mbed

Revision:
13:6094b94b3b7c
Parent:
12:582753a4f1fb
Child:
14:17be0f2d153f
diff -r 582753a4f1fb -r 6094b94b3b7c Function.h
--- a/Function.h	Fri Feb 21 11:52:48 2014 +0000
+++ b/Function.h	Fri Feb 21 12:32:00 2014 +0000
@@ -60,18 +60,25 @@
     LCD.locate(PY,PX);
     LCD.printf(STR);
 }
+/***************************************************************************/
 void Init_LCD(){
     Port.write_bit(1,BL_BIT); 
     Write_LCD("Muaiyd",0,4,1);
     Write_LCD("Heriot-Watt Uni.",1,0,0);
-    //wait(1);
-    //LCD.cls();
+    wait(1.5);
+    Write_LCD("F=",0,0,1);
+    Write_LCD("A1=",1,0,0);
+    Write_LCD("A2=",1,7,0);
+    Write_LCD("S1=",0,7,0);
+    Write_LCD("S2=",0,12,0);
+    Write_LCD("E",1,14,0);
+    LogTimer.start();
 }
 
-/*
+/***************************************************************************************
 Measure the frequency of a 3.3v square wave signal once every second. The frequency range
 is 500Hz to 1000Hz with 50% duty cycle). 
-*/
+*****************************************************************************************/
 
 void FreqMsur(){
     FreqTimeOut.start();
@@ -111,10 +118,10 @@
     Swch1=Switch1;
     Swch2=Switch2;    
 }
-/*
+/*******************************************************************
 Read TWO analogue inputs every 800mS (Analogue_in_1 at pin 19
 and Analogue_in_2 at pin 20). Also, averaging the last 4 readings
-*/
+********************************************************************/
 void ReadAnalogin(){
         Analug1_valu[4]=0;
         Analug2_valu[4]=0;
@@ -129,43 +136,36 @@
         Analug1_valu[4]=Analug1_valu[4]+Analug1_valu[3]/4;
         Analug2_valu[4]=Analug2_valu[4]+Analug2_valu[3]/4;  
 }
-/*
+/*************************************************************
 Display the following on the LCD display every 2 seconds 
 a. Frequency value (show as integer) 
 b. analogue values (show as integers) 
 c. digital values
 d. Possible error code
-*/
-void Display(){
-    Write_LCD("F",0,0,1);
+**************************************************************/
+void Display(){  
+    Write_LCD("    ",0,2,0);  
     if( Freq<1200 && Freq>400){
         sprintf(Temp, "%d", Freq);
-        Write_LCD(Temp,0,1,0);
+        Write_LCD(Temp,0,2,0);
     }
     else{
-        Write_LCD("Err",0,1,0);
+        Write_LCD("Err",0,2,0);
     }
-    
-    Write_LCD("A",1,0,0);
     sprintf(Temp, "%d", Analug1_valu[4]);
-    Write_LCD(Temp,1,2,0);
-
-    Write_LCD("A",1,8,0);
+    Write_LCD("   ",1,3,0);
+    Write_LCD(Temp,1,3,0);
     sprintf(Temp, "%d", Analug2_valu[4]);
-    Write_LCD(Temp,1,9,0);
-
-    Write_LCD("S",0,7,0);
+    Write_LCD("   ",1,10,0);
+    Write_LCD(Temp,1,10,0);
     sprintf(Temp, "%d", Swch1);
-    Write_LCD(Temp,0,8,0);
- 
-    Write_LCD("S",0,10,0);
+    Write_LCD(Temp,0,10,0);
     sprintf(Temp, "%d", Swch2);
-    Write_LCD(Temp,0,11,0);
-
-    Write_LCD("E",0,14,0);
+    Write_LCD(Temp,0,15,0);
     sprintf(Temp, "%d", Error_Code);
-    Write_LCD(Temp,0,15,0);
+    Write_LCD(Temp,1,15,0);
 }
+//############################################################
 void InputCheck(){
     if(Swch1&&(Analug1_valu[4]>Analug2_valu[4])){
         Error_Code=3;
@@ -191,13 +191,22 @@
          Bin=0x00;
     }         
 }
+/***************************************************************
+
+*****************************************************************/
 void InitFile(){
-    fp = fopen( "/sd/LogDir/sdtest.txt" , "a");
+    fp = fopen( "/sd/LogDir/LogHistory.txt" , "a");
     if(fp == NULL) {
         error("Could not open file for write\n");
     } 
+    fprintf(fp,"%s","**************************************************************\r\n");
+    fprintf(fp,"%s","Time Freq    Sw1   Sw2    An1    An2 ;\r\n");
+    fprintf(fp,"%s","**************************************************************\r\n");
     fclose(fp);  
 }
+/**************************************************************
+
+***************************************************************/
 void LogFile(){
     char* Frq; 
     fp = fopen("/sd/LogDir/sdtest.txt", "a");  
@@ -209,11 +218,11 @@
         Frq="Err";
   
     fprintf(fp,"%d ,",(LogTimer.read_ms()/1000));
-    fprintf(fp," %s ,",Frq);
-    fprintf(fp," %i ,",Swch1);
-    fprintf(fp," %i ,",Swch2);
-    fprintf(fp," %d ,",Analug1_valu[4]);
-    fprintf(fp," %d",Analug2_valu[4]);
+    fprintf(fp,"  %s  ,",Frq);
+    fprintf(fp,"  %i  ,",Swch1);
+    fprintf(fp,"  %i  ,",Swch2);
+    fprintf(fp,"  %d%3  ,",Analug1_valu[4]);
+    fprintf(fp,"  %d%3 ",Analug2_valu[4]);
     fprintf(fp," %s","\r\n");
     fclose(fp); 
     printf("Goodbye World!\n");