Embedded software Assessment 2

Dependencies:   MCP23017 SDFileSystem USBDevice WattBob_TextLCD mbed

Committer:
muaiyd
Date:
Tue Mar 04 17:03:38 2014 +0000
Revision:
18:f485d46a7acb
Parent:
17:dba09fb3f508
Child:
19:304b17087d06
do it in anothor way

Who changed what in which revision?

UserRevisionLine numberNew contents of line
muaiyd 18:f485d46a7acb 1 /* Cyclic Executive
muaiyd 16:0a2138a18f26 2 This software is built to test (Cyclic Executive). Five main functions are used in and every one of them
muaiyd 16:0a2138a18f26 3 has its own time of repetition. To execute this, a Ticker was used to call a function every 100 mSec.
muaiyd 16:0a2138a18f26 4 In other words, when 100 mSec is passed, the Cycle function is called and so on every 100 mSec. In this
muaiyd 16:0a2138a18f26 5 software a benefit is a token place for the difference between a float division with integer one. For example
muaiyd 16:0a2138a18f26 6 float(Counter/4.0)-Counter/4 if the Counter is a real repetition of 4 so the result of this will be 0. As a
muaiyd 16:0a2138a18f26 7 result every 4 cycle (400 mSec) the condition be true and calling the function. Also, after 8 cycles (800 mSec)
muaiyd 16:0a2138a18f26 8 the condition is true for two factions, but the processor will implement on the priority that it was put in
muaiyd 16:0a2138a18f26 9 the program.
muaiyd 18:f485d46a7acb 10 http://mbed.org/users/muaiyd/code/ass2/
muaiyd 16:0a2138a18f26 11 */
muaiyd 0:86bba6bf9b6f 12 #include "Function.h"
muaiyd 16:0a2138a18f26 13
muaiyd 16:0a2138a18f26 14 uint16_t Counter=0;
muaiyd 16:0a2138a18f26 15 void CycleFunction();
muaiyd 0:86bba6bf9b6f 16
muaiyd 0:86bba6bf9b6f 17 int main(){
muaiyd 0:86bba6bf9b6f 18 Init_LCD();
muaiyd 12:582753a4f1fb 19 InitFile();
muaiyd 16:0a2138a18f26 20 LogTimer.start();
muaiyd 17:dba09fb3f508 21 //Call the CycleFunction every 100 msec can see that on pin30
muaiyd 16:0a2138a18f26 22 Cycle.attach(&CycleFunction,0.1);
muaiyd 16:0a2138a18f26 23 }
muaiyd 16:0a2138a18f26 24
muaiyd 16:0a2138a18f26 25 void CycleFunction(){
muaiyd 18:f485d46a7acb 26 TickerPin = !(TickerPin);
muaiyd 17:dba09fb3f508 27 //Can see the period of execute every function below on the pin that
muaiyd 17:dba09fb3f508 28 //writen infront of it
muaiyd 18:f485d46a7acb 29 //The least common multiple for all the above is 1800 cycles
muaiyd 18:f485d46a7acb 30 // so every 180 Sec all the functions are repeated
muaiyd 18:f485d46a7acb 31 Counter++;
muaiyd 18:f485d46a7acb 32 if(Counter == 1800) Counter = 0;
muaiyd 18:f485d46a7acb 33
muaiyd 17:dba09fb3f508 34 if((float(Counter/4.0)-Counter/4)==0) ReadDigitalin(); //Pin 21
muaiyd 17:dba09fb3f508 35 if((float(Counter/8.0)-Counter/8)==0) ReadAnalogin(); //Pin 22
muaiyd 17:dba09fb3f508 36 if((float(Counter/10.0)-Counter/10)==0) FreqMsur(); //Pin 23
muaiyd 17:dba09fb3f508 37 if((float(Counter/15.0)-Counter/15)==0) BinaryCounter();//Pin 24
muaiyd 17:dba09fb3f508 38 if((float(Counter/18.0)-Counter/18)==0) InputCheck(); //Pin 25
muaiyd 17:dba09fb3f508 39 if((float(Counter/20.0)-Counter/20)==0) Display(); //Pin 26
muaiyd 17:dba09fb3f508 40 if((float(Counter/50.0)-Counter/50)==0) LogFile(); //Pin 27
muaiyd 18:f485d46a7acb 41
muaiyd 0:86bba6bf9b6f 42 }