![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Embedded software Assessment 2
Dependencies: MCP23017 SDFileSystem USBDevice WattBob_TextLCD mbed
Diff: Function.h
- Revision:
- 13:6094b94b3b7c
- Parent:
- 12:582753a4f1fb
- Child:
- 14:17be0f2d153f
--- 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");